ARM:具有对象数组的复杂变量

时间:2019-07-16 07:40:20

标签: azure azure-web-sites

如果可以创建一组复杂的对象,则无法读取文档https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates#variables。我认为“可变复杂类型值”有点含糊。

是否可以创建类似的东西

    {
    "variables" : {
       "appsettings" : [ 
                {"name" :"1","value" :"v1"}, 
                {"name":"2","value" :"v2"}
        ]
} 

我希望能够像这样在siteconfig的应用程序设置中引用此

{
... 
   properties:{
      "siteconfig" :{
          "appsettings" :"[variables('appsettings')]"
     }
  } 
... 
}

这有可能吗?

我现在不在电脑上可以尝试的位置,所以这就是为什么我要在这里问问题。

1 个答案:

答案 0 :(得分:1)

是的,有可能。

要创建变量的多个实例,请使用变量部分中的copy属性。

您将创建一个由输入属性中的值构成的元素数组。您可以在变量内或变量部分的顶层使用copy属性。在变量迭代中使用copyIndex时,必须提供迭代的名称。

"copy": [
      {
        "name": "top-level-object-array",
        "count": 5,
        "input": {
          "name": "[concat('myDataDisk', copyIndex('top-level-object-array', 1))]",
          "diskSizeGB": "1",
          "diskIndex": "[copyIndex('top-level-object-array')]"
        }
      },
      {
        "name": "top-level-integer-array",
        "count": 5,
        "input": "[copyIndex('top-level-integer-array')]"
      }
    ]

有关更多详细信息,您可以参考此article