在ARM模板中解决循环依赖关系有以下几种方法:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "storageAccount1",
"location": "[resourceGroup().location]",
"dependsOn": []
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2019-08-01",
"name": "webApp1",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/', 'storageAccount1')]"
]
}
]
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[concat('storageAccount', copyIndex())]",
"location": "[resourceGroup().location]"
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2019-08-01",
"name": "[concat('webApp', copyIndex())]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/', 'storageAccount', copyIndex())]"
]
}
],
"copy": {
"name": "resourceCopy",
"count": 2
}
在上面的示例中,将创建两个存储帐户和两个 Web 应用程序。每个 Web 应用程序都依赖于相应的存储帐户。
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "storageaccount1"
}
},
"variables": {
"storageAccountKey": "[listKeys(concat('Microsoft.Storage/storageAccounts/', parameters('storageAccountName')), '2019-06-01').keys[0].value]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[resourceGroup().location]"
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2019-08-01",
"name": "webApp1",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]"
]
}
]
在上面的示例中,参数 storageAccountName 定义了存储帐户的名称,在变量 storageAccountKey 中使用 listKeys() 函数获取存储帐户的访问密钥。这样,可以在创建 Web 应用程序时指定存储帐户的名称,并在 dependsOn 属性中引用相应的存储帐户。
上一篇:ARM模板下载访问被拒绝 401
下一篇:ARM模板循环依赖问题