如何解决如何通过 ARM 模板为 Azure DNS 区域删除 DNS 记录
我有一个用于 Azure DNS 区域的 ARM 模板,其中包含许多 Microsoft.Network/dnszones/*
、A
、CNAME
记录等的 TXT
资源。我已经能够通过部署成功部署新记录和更改记录。
我刚刚注意到,当我删除 ARM 模板中某些 DNS 记录对应的资源时,尽管部署成功,但该模板的部署实际上并未删除 Azure DNS 区域中的记录。
如果我删除模板中的资源并且在部署后它仍然存在且没有错误,这似乎破坏了 ARM 模板的声明性。
还是我误解了资源提供者的工作方式?
解决方法
ARM模板部署有两种模式:
-
增量:在增量模式下,资源管理器保留资源组中存在但未在模板中指定的未更改资源。模板中的资源被添加到资源组中。
-
完整:在完整模式下,资源管理器会删除资源组中存在但未在模板中指定的资源。
默认模式是增量,这就是您看不到已删除资源被移除的原因。
要在使用 PowerShell 部署时将 deployment mode 显式设置为 Complete
,请使用 Mode
参数作为:
New-AzResourceGroupDeployment `
-Mode Complete `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\storage.json
提示:在部署模板之前始终使用 what-if operation 在完整模式下。 What-if 显示将创建哪些资源, 删除或修改。使用假设来避免无意中删除 资源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。