有没有办法在循环中添加依赖项? 我试图通过循环向 NSG 添加几个允许所有规则,但失败了。 我正在使用这样的模板:
{
"copy": {
"name": "allowCopy",
"count": "[length(parameters('allowedCIDRs'))]"
},
"apiVersion": "[variables('apiVersionString')]",
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"name": "[concat(parameters('networkSecurityGroupName'), '/', parameters('allowedCIDRsNames')[copyIndex()])]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Network/networkSecurityGroups/', parameters('networkSecurityGroupName'))]"
],
"properties": {
"description": "[concat('Allow everything from ', parameters('allowedCIDRsNames')[copyIndex()])]",
"protocol": "*",
"sourcePortRange": "*",
"destinationPortRange": "*",
"sourceAddressPrefix": "[parameters('allowedCIDRs')[copyIndex()]]",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": "[copyIndex(100)]",
"direction": "Inbound"
}
}
其中 allowedCIDRs 和 allowedCIDRsNames 是各包含 9 个元素的数组。
它失败并出现以下错误:
New-AzureResourceGroupDeployment : 13:55:12 PM - Resource Microsoft.Network/networkSecurityGroups/securityRules 'NSGName/RuleName' failed with message 'Another operation on this or dependent resource is in progress. Toretrieve status of the operation use uri: '
每次都遵循不同的规则
最佳答案
我假设您想要连接参数“allowedCIDRs”的值和复制索引值。在这种情况下,您应该使用以下语法:
"sourceAddressPrefix": "[concat(parameters('allowedCIDRs'),copyIndex())]"
关于Azure 资源管理器 : loop dependency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34528350/