Azure虚拟机ARM模板CopyIndex排除avSet

问题描述

我正在尝试从“可变对象”中部署许多虚拟机,其中一些虚拟机需要添加到AVSet,而其他虚拟机则不需要。

我正在努力寻找一种方法来遍历对象,但不包括AVSet等。

"...MATCH(P" & findrow & ...

所以我认为如果参数avset为空,我需要设置一条if语句?但我被困住了。任何帮助都将是惊人的。

谢谢

解决方法

您可以对添加为注释和变量virtualMachineSettings的解决方案进行一些更改:

"virtualMachineSettings": [
  {
      "name": "WEBSERVER","subnet": "web","vmSize": "Standard_B2ms","publisher": "[parameters('standardVMPublisher')]","offer": "[parameters('standardVMoffer')]","sku": "[parameters('standardVMsku')]","avset": "webServersAVSet","availiabilitySet": {
        "id": "[resourceId('Microsoft.Compute/availabilitySets',"webServersAVSet")]"
      }
  },...
]

"properties": {
  "availabilitySet": "[if(not(empty(variables('virtualMachineSettings')[copyIndex()].avSet)),variables('virtualMachineSettings')[copyIndex()].availiabilitySet)]",...
}

或者您可以在变量virtualMachineSettings中为每个成员设置布尔属性,以判断是否需要为VM设置可用性集。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...