我正在部署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'本身中使用它?
答案 0 :(得分:1)
您需要等待部署完成,而不要等待部署内部的资源(因为它们位于不同的部署中,因此模板对它们一无所知)。
"[resourceId('Microsoft.Resources/deployments', 'vNet_ResourceUnit')]"