如何在Visual Studio Online中不断更新Azure webApp插槽配置?

时间:2016-12-07 13:31:13

标签: azure azure-devops azure-web-sites azure-cli

在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 配置吗?

1 个答案:

答案 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脚本并将其推送到源存储库

1)使用Stop-AzureRmWebAppSlot

停止网络应用插槽

stop-azurermwebappslot -name "<webapp-name>" -slot "<webapp-slot-name>" -resourcegroupname "<resourcegroup-name>"

2)使用Set-AzureRmResource

配置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,您可以参考它。