代码之家  ›  专栏  ›  技术社区  ›  Kamsiinov

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

  •  1
  • Kamsiinov  · 技术社区  · 6 年前

    我正在创建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]",
           }
    

    因为第一个子网不能引用自身,所以无法工作。

    1 回复  |  直到 6 年前
        1
  •  1
  •   4c74356b41    6 年前

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

    "copy": {
      "name": "subnetLoop",
      "count": "[variables('subnetcount')]",
      "mode": "serial"
    },
    

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

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

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