Azure ARM 模板动态变量绑定

Azure ARM template dynamic variable binding

如何通过传递动态变量从列表中获取键的值?

我的代码

    "variables": {
                "locationCodeList": [
                  {
                    "southcentralus": "ussc",
                    "northcentralus": "usnc",
                    "westcentralus": "uswc",
                    "centralus": "usce",
                    "westus": "uswe",
                    "westus2": "usw2"
                  }
                ],
                "locCode": "[variables('locationCodeList')[0].(resourceGroup().location)]"
}

我想在 resourceGroup().location 为 southcentralus 时获取值 ussc。有没有更好的方法来实现这个?

它是 json 所以你可以只使用 []

我用这个命令来测试下面的模板。 az deployment group create --resource-group rg-test --template-file .\blank.template

进行更新,使 locationCodeList 成为对象而不是数组。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
  },
  "variables": {
                "locationCodeList": {
                    "southcentralus": "ussc",
                    "northcentralus": "usnc",
                    "westcentralus": "uswc",
                    "centralus": "usce",
                    "westus": "uswe",
                    "westus2": "usw2"
                  },
                "locCode": "[variables('locationCodeList')[resourceGroup().location]]"
},
  "resources": [
  ],
  "outputs": {
    "locCodeOutput": {
      "type": "string",
      "value": "[variables('locCode')]"
    }
  }
}

万一有这个需要,我想离开它。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
  },
  "variables": {
                "locationCodeList": [
                  {
                    "southcentralus": "ussc",
                    "northcentralus": "usnc",
                    "westcentralus": "uswc",
                    "centralus": "usce",
                    "westus": "uswe",
                    "westus2": "usw2"
                  }
                ],
                "locCode": "[variables('locationCodeList')[0][resourceGroup().location]]"
},
  "resources": [
  ],
  "outputs": {
    "locCodeOutput": {
      "type": "string",
      "value": "[variables('locCode')]"
    }
  }
}