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

时间:2018-07-23 22:41:19

标签: arrays azure templates conditional

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

2 个答案:

答案 0 :(得分:1)

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

"[concat( parameters('existingArray'), if( parameters('condition'), array('Cc'), variables('emptyArray')) )]"

假设原始数组为:[“ Aa”,“ Bb”]

  • 条件为真时,将导致:[“ Aa”,“ Bb”,“ Cc”]
  • 条件为假时,将导致:[“ Aa”,“ Bb”]

答案 1 :(得分:0)

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