1

在 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 任务上时,它可以工作......但在生产槽上。

这很烦人,因为它降低了生产。

你知道如何在 VSO 持续集成中更新 WebApp插槽配置吗?

4

1 回答 1

1

根据您的描述,我在我这边进行了测试,我可以重现此问题。您可以添加-vv如下选项以查看更详细的输出。

azure webapp stop --slot <slot name> <resource-group-name> <your-webapp-name> -vv

这是来自我的 VSO 的 Azure CLI 任务的构建日志:

注意:由于 Azure CLI 任务是预览版。作为一种解决方法,您可以利用Azure Powershell任务来停止/启动您的 Web 应用程序插槽并按照以下步骤配置 AlwaysOn 选项:</p>

1. 添加 AZURE Powsershell 任务

2.添加以下powershell脚本并将其推送到您的源存储库

1) 使用Stop-AzureRmWebAppSlot停止 Web 应用槽

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

2)AlwaysOn使用Set-AzureRmResource进行配置

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 应用程序的选项存在类似问题,您可以参考它。

于 2016-12-08T10:39:50.270 回答