0

我有一个用于 Azure DNS 区域的 ARM 模板,该模板有许多Microsoft.Network/dnszones/*资源用于ACNAMETXT记录等。我已经能够通过部署成功部署新记录和更改记录。

然而,我只是注意到,当我删除与 ARM 模板中的某些 DNS 记录相对应的资源时,尽管部署成功,但该模板的部署实际上并没有删除 Azure DNS 区域中的记录。

如果我删除了模板中的资源并且在部署后它仍然存在且没有错误,这似乎破坏了 ARM 模板的声明性。

还是我对资源提供者的工作方式有误解?

4

1 回答 1

1

可以部署 ARM 模板的模式有两种:

  • 增量:在增量模式下,资源管理器保留资源组中存在但未在模板中指定的未更改资源。模板中的资源被添加到资源组中。

  • 完成:在完成模式下,资源管理器会删除资源组中存在但未在模板中指定的资源。

默认模式是incremental,这就是为什么您没有看到已删除的资源被删除的原因。

要在使用 PowerShell 部署时将部署模式设置为显式,请使用以下参数:CompleteMode

New-AzResourceGroupDeployment `
  -Mode Complete `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\MyTemplates\storage.json

提示:在完整模式下部署模板之前,始终使用假设操作。What-if 显示将创建、删除或修改哪些资源。使用假设分析来避免无意中删除资源。

于 2021-02-16T02:50:55.860 回答