Json ARM模板:如何确保Web应用插槽不会部署Web应用设置?
我在Azure上为我们的登台和产品环境提供了完全可用的ARM模板。它是通过Azure DevOps发布的 但是,我注意到我在ARM中为Web应用应用程序应用的Web应用程序设置也会复制到Web应用程序插槽中。我知道这可以在Azure上手动勾选,但是有没有办法在ARM模板上实现呢?我看过微软的网站,但没有看到任何帮助,想知道这是否是一个手动任务Json ARM模板:如何确保Web应用插槽不会部署Web应用设置?,json,azure,web-applications,azure-devops,azure-resource-manager,Json,Azure,Web Applications,Azure Devops,Azure Resource Manager,我在Azure上为我们的登台和产品环境提供了完全可用的ARM模板。它是通过Azure DevOps发布的 但是,我注意到我在ARM中为Web应用应用程序应用的Web应用程序设置也会复制到Web应用程序插槽中。我知道这可以在Azure上手动勾选,但是有没有办法在ARM模板上实现呢?我看过微软的网站,但没有看到任何帮助,想知道这是否是一个手动任务 { "type": "Microsoft.Web/sites/config", &
{
"type": "Microsoft.Web/sites/config",
"apiVersion": "2019-08-01",
"location": "[resourceGroup().location]",
"name": "[concat(parameters('webAppName'), '/appsettings')]",
"dependsOn": [
"[parameters('webAppName')]",
"[concat(parameters('sqlDatabase'), 'constr')]"
],
"properties": {
"APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', parameters('appInsights')), '2014-04-01').InstrumentationKey]",
"ApplicationInsightsAgent_EXTENSION_VERSION": "~2",
"DiagnosticServices_EXTENSION_VERSION": "~3",
}
这就是我的应用程序设置代码的样子(有更多的应用程序设置,我复制这些设置毫无意义)
下面是我的Web应用程序插槽ARM代码
{
"apiVersion": "2019-08-01",
"type": "Microsoft.Web/sites/slots",
"name": "[concat(parameters('webAppName'), '/', parameters('slots')[copyIndex()])]",
"kind": "app",
"location": "[resourceGroup().location]",
"copy": {
"name": "WebAppSlots",
"count": "[length(parameters('slots'))]"
},
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('planName'))]"
},
"dependsOn": [
"[parameters('webAppName')]",
"[concat(parameters('sqlDatabase'), 'constr')]"
]
},
我将非常感谢您对此事的任何见解
谢谢:)使用手臂模板设置插槽是一个巨大的难题。在ARM模板中,如果不在插槽定义中实际复制属性部分,就无法复制设置 自从您使用Azure DevOps进行部署以来,您可以使用更多选项。在我脑海中,这些包括:
- 使用将Web应用和插槽设置设置为管道的一部分
- 我很幸运地使用了这个工具。这需要一点代码,但我喜欢配置历史记录跟踪、比较和无需回收Web应用程序即可热交换设置的功能
- 我还刚刚执行了Powershell脚本作为部署管道的一部分,以设置Azure Web应用程序和插槽设置。鉴于上述方法的可用性,我认为这是第三种方法。但为了完整性,我想把它包括在内