首页 > 解决方案 > ARM 模板:有条件地添加到数组

问题描述

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

标签: azureazure-resource-managerarm-template

解决方案


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

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

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

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

推荐阅读