Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Azure DNS区域的ARM模板删除DNS记录_Azure_Azure Resource Manager_Arm Template_Azure Dns - Fatal编程技术网

如何通过Azure DNS区域的ARM模板删除DNS记录

如何通过Azure DNS区域的ARM模板删除DNS记录,azure,azure-resource-manager,arm-template,azure-dns,Azure,Azure Resource Manager,Arm Template,Azure Dns,我有一个Azure DNS区域的ARM模板,该区域有许多Microsoft.Network/dnszones/*资源,用于A、CNAME、TXT记录等。我能够通过部署成功地部署新记录和更改记录 但是,我注意到,当我删除与ARM模板中某些DNS记录对应的资源时,该模板的部署实际上并没有删除Azure DNS区域中的记录,尽管部署成功 这似乎打破了ARM模板的声明性,如果我删除了模板中的资源,并且它在部署后仍然存在,没有出现错误 还是我误解了资源提供者的工作方式?可以使用两种模式部署ARM模板:

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

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

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


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

可以使用两种模式部署ARM模板:

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

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

默认模式为增量模式,这就是您没有看到删除的资源被删除的原因

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

New-AzResourceGroupDeployment `
  -Mode Complete `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\MyTemplates\storage.json
提示:在部署模板之前始终使用 在完全模式下。如果显示将创建哪些资源, 删除或修改。使用假设避免无意中删除 资源


您有机会查看提供的解决方案吗?感谢@BhargaviAnnadevara解答了这个问题!