ARM 模板:有条件地添加到数组

Ted*_*Ted 5 azure azure-resource-manager azure-rm-template

对于我的 Azure ARM 模板,我想有条件地添加一个额外的 NSG 规则。如果参数为真,则将额外规则附加到“securityRules”数组。我如何有效地解决这个问题?我不能对嵌套对象使用“条件”属性。创建两个资源似乎很笨拙。

小智 6

根据条件,您想向现有的 json 数组添加一个额外的(字符串)值。这可以通过 concat 函数完成。为了连接数组和字符串值,字符串值也需要转换为数组。当条件为真时,可以连接两个数组。当条件为假时,您可以将现有字符串与空数组连接起来。

"[concat( parameters('existingArray'), if( parameters('condition'), array('Cc'), variables('emptyArray')) )]"
Run Code Online (Sandbox Code Playgroud)

假设原始数组是:["Aa", "Bb"]

  • 当条件为真时,这将导致:["Aa", "Bb", "Cc"]
  • 当条件为假时,这将导致:["Aa", "Bb"]


Ted*_*Ted 0

想多了。允许将变量定义为数组。定义两个变量,每个变量具有不同的规则集。根据参数“allowInternetAccess”将“if”函数应用于 securityRules。