在ARM模板中使用dependsOn属性

时间:2019-06-09 16:31:26

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

我正在部署VNET,然后再部署其他资源。它确实部署了第一个VNET模板,但是在部署其他VNET模板时却出错,因为它说子网处于供应状态,即资源正在更新。

我正在使用嵌套模板,并尝试在ARM中使用dependsOn属性,尽管无法正常工作。可以在资源级别使用它吗?

"resources": [
    {
      "apiVersion": "2017-05-10",
      "name": "vNet_ResourceUnit",
      "type": "Microsoft.Resources/deployments",
      "resourceGroup": "[resourceGroup().name]",
      "properties": {
        "mode": "Incremental",
        "templateLink": {
          "uri": "[variables('vnetTemplateUrl')]",
          "contentVersion": "1.0.0.0"
        },
        "parameters": {
          "hyphenBasedPrefix": {
            "value": "[variables('hyphenBasedPrefix')]"
          },
          "baseTemplateUrl": {
            "value": "[parameters('baseTemplateUrl')]"
          },
          "vnetObject": {
            "value": "[variables('vnet')]"
          }
        }
      }
    },
    {
      "apiversion": "2017-05-10",
      "name": "keyVault_resourceunit",
      "type": "microsoft.resources/deployments",
      "resourcegroup": "[resourcegroup().name]",
      "dependsOn": [
        ------
      ],
      "properties": {
        "mode": "incremental",
        "templatelink": {
          "uri": "[variables('keyVaultTemplateUrl')]",
          "contentversion": "1.0.0.0"
        },
        "parameters": {
          "hyphenbasedprefix": {
            "value": "[variables('hyphenbasedprefix')]"
          },
          "basetemplateurl": {
            "value": "[parameters('basetemplateurl')]"
          },
          "keyvaultobject": {
            "value": "[variables('keyvault')]"
          },
          "vnetObject": {
            "value": "[variables('vnet')]"
          }
        }
      }
    }
  ]

我如何在资源级别上使用dependsOn属性?我确实使用:

尝试了最后一个模板
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]"

但是它不起作用。 如何在'keyVault_resourceunit'本身中使用它?

1 个答案:

答案 0 :(得分:1)

您需要等待部署完成,而不要等待部署内部的资源(因为它们位于不同的部署中,因此模板对它们一无所知)。

"[resourceId('Microsoft.Resources/deployments', 'vNet_ResourceUnit')]"