【发布时间】:2020-06-27 16:03:20
【问题描述】:
我想从 Azure DevOps 管道执行以下操作:
- 为现有的 WebApp (
staging) 创建新的部署槽 - 将应用程序部署到新插槽
- 将
staging插槽与production交换 - 删除以前的
production,现在删除staging槽
到目前为止我所拥有的是:
- 将应用程序部署到新插槽
- 将
staging插槽与生产交换 - 删除以前的
production,现在删除staging槽
YAML:
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'BizSpark(...)'
appType: 'webApp'
WebAppName: 'foo'
deployToSlotOrASE: true
ResourceGroupName: 'Default-WestEurope'
SlotName: 'staging'
packageForLinux: '$(Build.ArtifactStagingDirectory)/**/*.zip'
- task: AzureAppServiceManage@0
inputs:
azureSubscription: 'BizSpark(..)'
Action: 'Swap Slots'
WebAppName: 'foo'
ResourceGroupName: 'Default-WestEurope'
SourceSlot: 'staging'
- task: AzureAppServiceManage@0
inputs:
azureSubscription: 'BizSpark(..)'
Action: 'Delete Slot'
WebAppName: 'foo'
ResourceGroupName: 'Default-WestEurope'
Slot: 'staging'
但是,AzureAppServiceManage 任务不提供创建部署槽的方法。
如何做到这一点?
【问题讨论】:
-
通常这是通过在应用部署之前完成的 ARM 模板部署来实现的。 docs.microsoft.com/en-us/azure/azure-resource-manager/templates/…
-
保留应用服务槽会消耗大量内存。我现在将把同样的东西应用到我的项目中。你能告诉我它到现在是否还能正常工作吗?
-
@ThiệnSinh 我在大约 10 个生产管道中使用这种方法,它对我来说非常有效。
标签: azure azure-devops yaml azure-pipelines