我有一个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"
}
]
}
答案 0 :(得分:1)
我认为您搞砸了这一行中的括号:
"name": "[parameters('firewallRules')[copyIndex('firewallRules')].name",
它应该像这样:
"name": "[parameters('firewallRules')[copyIndex('firewallRules')].name]",
缺少最后一个括号。如果方括号不匹配,则不会处理完整的表达式。这将在第二个循环中产生相同的名称。
问候, 柯克