Azure ARM 模板部署是事务性的吗?

Is Azure ARM Template deployment transactional?

假设我正在通过脚本部署 Azure VM,这需要多个相互依赖的资源。

假设网卡出现故障,

  1. 部署脚本是否仍然通过到 VM 的部署?这样我就有了一个没有网卡的虚拟机
  2. 是否回滚整个脚本失败?

没有 ARM 模板不在事务中执行。

  1. 您可能已经部署了资源,但没有部署整个 ARM 模板。在您的情况下,没有 NIC 的 VM 是不可能的(但是您测试了 ARM 模板的部署并使其在最后工作。)
  2. 它不会回滚。

我认为现在他们已经添加了“--rollback-on-error”标志,以便在部署失败时回滚上次成功的部署。您还可以指定需要回滚到的部署的名称,请参考:https://docs.microsoft.com/en-us/cli/azure/group/deployment?view=azure-cli-latest#commands.