【发布时间】:2019-11-05 18:38:39
【问题描述】:
我有以下 ARM 模板结构:
Parent Template
|--Nested Template 1
|--...
|--Nested Template 6
所以我只有 2 级模板,父级和嵌套级。
假设我将父级部署到一个空资源组并且一切正常。之后,我删除了其中一个资源,并希望使用相同的参数部署相同的父模板以恢复已删除的资源。但是部署会失败,说资源已经存在(另一个,不是我试图重新创建的那个)。我尝试了增量模式和完整模式进行部署。 如果我直接使用缺少的资源调用嵌套模板,它会按预期工作(因此专门创建一个仅使用嵌套模板的部署,而不是调用嵌套模板的父级)。
更新: 经过一些额外的测试,我可以得出结论,这比以前更奇怪。所以我用 powershell 开始这个部署:
New-AzureRmResourceGroupDeployment @parameters
它部署得很好,但是如果我在第一次部署完成后调用相同的命令,我会得到一个错误:
资源 'gggg-1s-the-wordd' 已存在于位置 资源组“gggg”中的“westeurope”。同名资源 无法在位置“northeurope”中创建。请选择一个新的 资源名称。
这种行为是否例外?我似乎找不到任何相关内容,谢谢!
UPD2:不管我使用的是门户还是 powershell,我都会遇到同样的错误。
【问题讨论】:
-
重新部署只需使用相同的模板和参数启动新部署,因此它与门户或 PowerShell 中的单独部署执行相同的操作是有意义的。
-
但是它出错了没有意义
-
resourceGroup() 函数在嵌套模板和链接模板之间的解析方式有所不同。基本上在嵌套模板中指定resourcegroup 获取主模板的resourcegroup,所以如果你使用resourceGroup().location,你可能指向错误的地方。以下文档很好地解释了它。 docs.microsoft.com/en-us/azure/azure-resource-manager/…
标签: azure azure-resource-manager