1

我正在尝试将可用区添加到我的 VM 臂模板中。

大多数时候,我不希望 VM 位于一个区域中,因为它是单个 VM。

所以在我的 ARM 模板中,我将区域部分定义为:

"zones":[
        "[if(greaterOrEquals(parameters('availabilityZone'), 1),parameters('availabilityZone'),json('null'))]"
      ],

如果我将值设置为 1 或更高,这可以正常工作,但如果我留空则失败。

验证失败并显示消息:不支持资源“Microsoft.Compute/virtualMachines/XXX”的“区域”。

如果我删除if条件,然后在空白处硬编码它可以工作:

"zones": "",

我提前感谢您的帮助。

斯图

4

2 回答 2

0

我们找到了以下有效的解决方案:

"zones": "if(empty(parameters('availabilityZone')),parameters('availabilityZone'),array(parameters('availabilityZone')))]"

于 2021-01-15T13:19:33.867 回答
0

请尝试这样的事情,如果您的参数不包含,那么它将传递空值,

"zones": "[if(empty(parameters('availabilityZone')),'', parameters('availabilityZone'))]",

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-string?tabs=json#empty

于 2021-01-13T15:56:35.223 回答