ARM模板副本报告不存在时的重复项

时间:2018-08-24 18:07:17

标签: azure azure-resource-manager arm-template

我有一个ARM模板,该模板尝试根据一系列防火墙参数为Azure Data Lake Store设置防火墙规则。 IP规则的参数列表是不同的,没有重复项,但是当我尝试部署时,模板报告重复项。

是否知道哪里出了问题或如何进一步排除故障?

Azure Data Lake Store的属性(在ARM模板中)

"copy": [
      {
        "name": "firewallRules",
        "count": "[length(parameters('firewallRules'))]",
        "input": {
          "name": "[parameters('firewallRules')[copyIndex('firewallRules')].name",
          "properties": {
            "startIpAddress": "[parameters('firewallRules')[copyIndex('firewallRules')].startIp]",
            "endIpAddress": "[parameters('firewallRules')[copyIndex('firewallRules')].endIp]"
          }
        }
      }
    ]

错误消息:

  

[错误] New-AzureRmResourceGroupDeployment:18:57:28-资源   Microsoft.DataLakeStore /帐户“ myadlsname”失败,并显示[ERROR]   消息'{[错误]“错误”:{[错误]“代码”:   “ DuplicatedNestedResource”,[错误]“消息”:“有防火墙   正文中具有相同名称的规则。” [错误]} [错误]}'

参数:

  "FirewallRules": {
          "value": [
            {
              "name": "Allow_1",
              "startIp": "1.1.1.1",
              "endIp": "1.1.1.1"
            },
            {
              "name": "Allow_2",
              "startIp": "2.2.2.2",
              "endIp": "2.2.2.2"
            },
            {
              "name": "Allow_3",
              "startIp": "3.3.3.3",
              "endIp": "3.3.3.3"
            }
          ]
        }

1 个答案:

答案 0 :(得分:1)

我认为您搞砸了这一行中的括号:

"name": "[parameters('firewallRules')[copyIndex('firewallRules')].name",

它应该像这样:

"name": "[parameters('firewallRules')[copyIndex('firewallRules')].name]",

缺少最后一个括号。如果方括号不匹配,则不会处理完整的表达式。这将在第二个循环中产生相同的名称。

问候, 柯克