【发布时间】:2023-04-03 20:48:01
【问题描述】:
我是 ARM 的新手。我创建了一个 ARM 模板,用于在资源组中部署存储帐户和数据工厂。
如果我想使用同一个 ARM 模板将另一个资源添加到同一个资源组中,我是否可以不简单地将该资源添加到存储帐户和数据工厂部署代码下方的 ARM 模板中并运行 ARM 模板?
因为目前,当我运行相同的模板时,它会给我一个错误提示:
存储帐户已存在。
似乎它正在尝试重新部署我不想要的存储帐户。如何在每次必须部署一些新资源时使用相同的 ARM 模板,以避免重新部署已部署的资源?
我可以在 ARM 模板中添加什么吗?
注意:我不想在这里使用 PowerShell 或 Azure CLI。我正在使用已创建 YAML 任务的管道部署资源。
PFB 我的示例模板:
{
"$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "West Europe"
},
"storageAccountName": {
"type": "string",
"defaultValue": "storageabc"
}
"accountType": {
"type": "string"
},
"kind": {
"type": "string"
}
...
},
"resources": [
{
"name": "[parameters('storageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"location": "[parameters('location')]",
"properties": {},
"dependsOn": [],
"sku": {
"name": "[parameters('accountType')]"
},
"kind": "[parameters('kind')]"
},
{
"type": "Microsoft.DataFactory/factories,
"apiVersion": "2018-06-01"
-
-
-
..
}
],
"outputs": {}
}
【问题讨论】:
-
同一个模板应该可以吗?我们部署 ARM 模板,其中包含例如每天存储帐户,不会出现此错误。您能否提供您的模板示例以及如何部署它?
-
@juunas 感谢您的回复。我添加了我的模板示例。因此,如果我必须在 datafactory 资源下方的同一模板中添加新资源并运行此模板,它会尝试重新部署存储帐户。
-
ARM 模板是幂等的,因此您可以根据需要多次运行它们,它们应该给出相同的结果,如果您可以提供您尝试部署的完整模板,那么判断起来会容易得多你的问题
-
@Ganesh 您是否尝试在不同的资源组中重新部署?
-
@Thomas,不,我试图部署在同一个资源组中。下面 Miq 提供的答案有助于解决此问题。任何其他建议将不胜感激:)
标签: azure azure-devops azure-resource-manager arm-template