如何在可用性区域的 Azure ARM 模板中使用 IF 语句?

How to use IF statement in Azure ARM template for availability zones?

我正在尝试将可用性区域添加到我的 VM 创建模板中,我正在使用下面的代码来实现它并且它工作正常。

"zones": "[split(string(add(mod(copyIndex(),3),1)), ',')]"

但我想更进一步。我有一个名为 'VM Quantity' 的参数,我想要它以便如果此参数等于 1,则不要处理这行代码。

所以基本上,如果 'VM Quantity' 等于 1,则不要将 VM 添加到可用区,但如果它等于 2 或大于 2,则 运行 上面的代码将其添加可用区。

我试过各种 IF 语句,但根本无法使它起作用。

有谁知道我将如何实现这一点?

谢谢!

我想你可以添加判断如下:

"zones": "[if(lessOrEquals(parameter('VM_Quantity'), 1), '', split(string(add(mod(copyIndex(),3),1)), ','))]"

如果有人需要做类似的事情,我设法用下面的代码解决了这个问题:

"zones": "[if(greaterOrEquals(parameters('VM Quantity'),2),split(string(add(mod(copyIndex(),3),1)), ','),'')]"

解释这段代码,如果参数'VM Quantity'大于等于'2',执行

split(string(add(mod(copyIndex(),3),1)), ',')

部分代码,如果没有,什么都不做。