如何使用Arm模板更新Azure Appsettings

问题描述

我有一个Azure API应用程序服务,其配置中包含30多个应用程序设置。此应用程序服务部署在3个环境中,其中某些应用程序设置在整个环境中是通用的,而其他设置是特定于环境的。我们正在使用Devops CD管道来部署到不同的环境。

现在,可以在应用程序门户中手动创建/更新设置。但是我想将这些设置作为部署的一部分-在源文件或devops CD管道中。

我知道Devops有一个“ Azure应用程序服务设置”任务,该任务完全可以满足我的要求-但其应用程序设置插槽中最多可以包含5000个字符,因此我必须为此添加多个任务,很快变得难以处理(大量挖掘以寻找特定设置)。

是否可以将手臂模板用于应用程序设置?也许还有另一种方法可以做到这一点?

解决方法

我终于找到了模板所需的正确“种类”(我认为查找文档有点困难,因为我一直以Web应用程序文档而不是api应用程序结尾):

"resources": [
{
  "type": "Microsoft.Web/sites/slots","apiVersion": "2018-11-01","name": "[parameters('MyAppName']","location": "West Europe","kind": "api","properties": {
    "siteConfig": {
      "appSettings": [
        {
          "name": "Setting1","value": "Setting1Value"
        }
      ]
    }
  }
}

]

然后我使用Devops为每个环境设置参数值