在VSO中发布版本时,我想在webapp临时插槽中发布它。我使用的是NewRelic,因此我必须停止登台环境,并在部署之前将AlwaysOn选项设置为false,然后将其启用并在部署后启动。
这是我在部署任务之前使用Azure CLI任务执行的操作:
call azure webapp config set --slot staging Default-Web-WestEurope instanceName --alwayson false
call azure webapp stop --slot staging Default-Web-WestEurope instanceName
当我在自己的桌面上的Azure CLI上启动这些命令时,它运行良好。但是,当我将此脚本放在VSO上的Azure CLI Task上时,它可以... 但在生产槽上。
这非常令人讨厌,因为它降低了产量。
您知道如何在VSO持续集成中更新WebApp slot 配置吗?
答案 0 :(得分:1)
根据你的描述,我测试了它,我可以重现这个问题。您可以按如下方式添加-vv
选项以查看更详细的输出。
azure webapp stop --slot <slot name> <resource-group-name> <your-webapp-name> -vv
以下是我的VSO中Azure CLI任务的构建日志:
注意:由于Azure CLI任务处于预览状态。要解决此问题,您可以利用Azure Powershell
任务停止/启动您的Web应用程序插槽,并按以下步骤配置AlwaysOn选项:
<强> 1。添加AZURE Powsershell任务
<强> 2。添加以下powershell脚本并将其推送到源存储库
停止网络应用插槽 stop-azurermwebappslot -name "<webapp-name>" -slot "<webapp-slot-name>" -resourcegroupname "<resourcegroup-name>"
AlwaysOn
Set-AzureRmResource -resourcename "<webapp-name>\slots\<webapp-slot-name>/web" -ResourceGroupName "<resourcegroup-name>" -ResourceType "Microsoft.Web/sites/config" -ApiVersion 2015-08-01 -propertyobject @{alwaysOn = $false;} -v -force
第3。配置您的任务
然后我们可以看到以下构建日志:
此外,我发现在Azure Web App部署期间有关停止/启动Web应用程序的选项类似issue,您可以参考它。