Json ARM模板:如何确保Web应用插槽不会部署Web应用设置?

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", &

我在Azure上为我们的登台和产品环境提供了完全可用的ARM模板。它是通过Azure DevOps发布的

但是,我注意到我在ARM中为Web应用应用程序应用的Web应用程序设置也会复制到Web应用程序插槽中。我知道这可以在Azure上手动勾选,但是有没有办法在ARM模板上实现呢?我看过微软的网站,但没有看到任何帮助,想知道这是否是一个手动任务

{
        "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应用程序和插槽设置。鉴于上述方法的可用性,我认为这是第三种方法。但为了完整性,我想把它包括在内

感谢Rob的回复。因此,为了确认,我无法通过ARM来确保Wep应用程序设置不会转移到Web应用程序插槽中?干杯。Azure开发团队迭代速度非常快,所以这并不意味着它总是答案。但现在是。谢谢罗布-我真的很感谢你的帮助。我快疯了!