Azure ARM模板依赖于复制循环中的资源

Kam*_*nov 5 azure azure-resource-manager azure-devops azure-rm-template

我正在创建 ARM 模板,它接受子网哈希表并创建它们。但是,看起来我需要等待第一个子网准备好才能创建第二个子网等。但我不知道如何依赖复制循环中的前一个子网。我的模板资源目前如下所示:

      {
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Network/virtualNetworks/subnets",
    "name": "[concat(parameters('vnetName') , '/' , parameters('subnets').settings[copyIndex()].name)]",
    "location": "[variables('location')]",
    "copy": {
      "name": "subnetLoop",
      "count": "[variables('subnetcount')]"
    },
    "dependsOn": ["[parameters('vnetName')]",
    "[resourceId(variables('rgname'), 'Microsoft.Network/virtualNetworks/subnets', parameters('vNetName'), parameters('subnets').settings[copyIndex()].name)]"
  ],
    "properties": {
      "addressPrefix": "[parameters('subnets').settings[copyIndex()].addressPrefix]",
       }
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为第一个子网无法引用自身。

4c7*_*b41 5

你可以用来"mode": "serial"解决这个问题。

"copy": {
  "name": "subnetLoop",
  "count": "[variables('subnetcount')]",
  "mode": "serial"
},
Run Code Online (Sandbox Code Playgroud)

https://learn.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-multiple#resource-iteration

但您确实需要查看属性循环,请检查此链接:

https://learn.microsoft.com/en-us/azure/architecture/building-blocks/extending-templates/objects-as-parameters#using-a-property-object-in-a-copy-loop