You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARM模板中如何将字面量数组与参数传入的数组合并为appSettings

实现ARM模板中appSettings数组合并的方案

核心通过ARM模板原生的concat函数实现数组拼接,配合数组项的先后顺序控制重复配置的优先级即可,无需依赖额外扩展。

1. 适用逻辑说明

  • 无重复配置项场景:直接拼接内置固定配置和外部传入的配置数组即可
  • 存在重复配置项场景:数组中靠后的同key配置会覆盖靠前的配置,可通过调整concat的参数顺序控制优先级:
    • 希望外部传入配置优先级更高:外部数组放在concat参数的末尾
    • 希望模板内置固定配置优先级更高:内置数组放在concat参数的末尾

2. 完整示例模板片段

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "additionalAppSettings": {
      "type": "array",
      "defaultValue": [],
      "metadata": {
        "description": "外部传入的额外站点配置数组"
      }
    }
  },
  "variables": {
    // 模板内部字面量定义的固定配置
    "builtinAppSettings": [
      {
        "name": "ASPNETCORE_ENVIRONMENT",
        "value": "Production"
      },
      {
        "name": "WEBSITE_RUN_FROM_PACKAGE",
        "value": "1"
      }
    ],
    // 合并后的最终配置,此处外部配置优先级更高,可按需调整参数顺序
    "finalAppSettings": "[concat(variables('builtinAppSettings'), parameters('additionalAppSettings'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2021-02-01",
      "name": "你的站点名称",
      "location": "[resourceGroup().location]",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', '你的应用服务计划名称')]",
        "siteConfig": {
          "appSettings": "[variables('finalAppSettings')]"
        }
      }
    }
  ]
}

内容的提问来源于stack exchange,提问作者Snooks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:24:04