在 ARM 模板中添加另一个资源

add another resource in the ARM template

我们已经有一个名为“”ap-d-function1”的函数应用程序计划。我们想创建另一个名为“”ap-d-function2”的应用程序计划。如何在现有参数模板中包含“ap-d-function2”?我尝试了以下但没有成功。

"hostingPlanName": {
      "value": "ap-d-function1"
    },
    "hostingPlanSku": {
      "value": "P2V2"
    },

更新参数模板:

"hostingPlanName": {
      "value": "ap-d-function1","ap-d-function2"
    },
    "hostingPlanSku": {
      "value": "P2V2"
    },

也试过了

"hostingPlanName": [
{
  "value": "ap-d-function1",
    },
{
  "value": "ap-d-function2",
    }
],

您可以为此使用数组类型,例如声明为:

"hostingPlanNames": {
  "type": "array"
}

然后在参数文件中:

"hostingPlanNames": {
  "value": [
    "ap-d-function1",
    "ap-d-function2"     
  ]
}

或者简单地使用两个单独的参数:

"hostingPlanName1": {
  "value": "ap-d-function1"
}

"hostingPlanName2": {
  "value": "ap-d-function2"
}

如果使用数组,最简单的选择是如 this document 所示引用它们,例如使用第一个值:

"someValue": "[parameters('hostingPlanNames')[0]]"

或者您可以在资源中使用 copy element 循环并使用 copyIndex() 函数访问数组:

"resources": [
  {
    "type": "some/resource/type",
    "name": "[parameters('hostingPlanNames')[copyIndex()]]",
    ...
    "copy": {
      "name": "myCopy",
      "count": "2"
    }
  }
]

还有其他各种函数也可以与数组一起使用,请参阅 this document