【问题标题】:How to update Azure webApp slot configuration in Visual Studio Online continuous integration?如何在 Visual Studio Online 持续集成中更新 Azure webApp 插槽配置?
【发布时间】:2016-12-07 13:31:12
【问题描述】:

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

【问题讨论】:

  • 所以你是说 azure cli 命令在代理上运行时不尊重 slot 参数?
  • @ChrisPatterson 是的,我想这是一个巨大的错误,但它处于预览阶段,所以......
  • @forester123 我还没有尝试 Powershell 任务,我会接受答案!
  • @Raph 你能告诉我你在本地使用的是哪个版本的 azure cli 吗?我看不出该任务是如何导致此问题的,我很想知道这是否与构建 VM 上安装的 CLI 版本有关。

标签: azure azure-devops azure-web-app-service azure-cli


【解决方案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.配置您的任务

然后我们可以看到如下构建日志:

另外,我发现有一个类似的issue 关于在 Azure Web App 部署期间停止/启动 Web 应用程序的选项,你可以参考它。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
相关资源
最近更新 更多