azure - 如何在 Visual Studio Online 持续集成中更新 Azure webApp 插槽配置?

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

在 VSO 中发布构建版本时,我想在 Web 应用程序暂存槽中发布它。我正在使用 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持续集成中更新WebAppslot配置吗?

最佳答案

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

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

以下是我的 VSO 中的 Azure CLI 任务的构建日志:

注意:由于 Azure CLI 任务处于预览阶段。对于解决方法,您可以利用 Azure Powershell任务停止/启动您的网络应用程序插槽并配置 AlwaysOn 选项,步骤如下:

<强>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。配置您的任务

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

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

关于azure - 如何在 Visual Studio Online 持续集成中更新 Azure webApp 插槽配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41018810/

相关文章:

azure - 使用 pdf 文件及其元数据进行 Azure 认知搜索

.net - 如何在Windows azure辅助角色中创建多个线程

Azure 数据工厂 U-SQL 事件动态参数

azure - 为应用程序分配角色访问权限时,主体 ID 应该是什么?

visual-studio - Visual Studio 如何连接到存储库位于 GitHub 上的 Azure DevOps 工作区?

azure - 使用 ARM 模板为应用程序服务启用诊断日志

node.js - 如何将 NodeJs 应用程序部署到 azure Web 应用程序

silverlight - 微软 Azure 和 Silverlight

Azure Http 到 Https 重定向不适用于 SPA

azure - 如何在 Azure DevOps 中查看或获取服务连接 ID