Azure 资源管理器资源组和资源删除

本文介绍如何删除资源组和资源。 它介绍在删除资源组时 Azure 资源管理器如何为资源的删除排序。

如何确定删除顺序

删除资源组时,资源管理器会确定删除资源的顺序。 采用以下顺序:

  1. 删除所有子(嵌套)资源。

  2. 接下来,删除管理其他资源的资源。 可以为资源设置 managedBy 属性,用于指示管理它的其他资源。 设置此属性后,先删除管理其他资源的资源,再删除受管理的这些资源。

  3. 删除前两种类别后,便会删除剩余资源。

确定顺序后,资源管理器为每个资源发出 DELETE 操作。 它先等待所有依赖项均完成操作,再继续。

对于同步操作,预期的成功响应代码为:

  • 200
  • 204
  • 404

对于异步操作,预期的成功响应代码为 202。 资源管理器会跟踪 location 标头或 azure-async operation 标头,以确定异步删除操作的状态。

删除错误

如果删除操作返回错误,资源管理器会重试 DELETE 调用。 若状态代码为 5xx、429 和 408,便会重试。 默认情况下,重试的时间段为 15 分钟。

删除之后

资源管理器对其尝试删除的每个资源发出 GET 调用。 此 GET 调用的响应应为 404。 当资源管理器获得 404 时,便将删除操作视为成功完成。 资源管理器会从其缓存中删除资源。

但是,如果对资源的 GET 调用返回 200 或 201,资源管理器会重新创建资源。

如果 GET 操作返回错误,资源管理器会为以下错误代码重试 GET 调用:

  • 小于 100
  • 408
  • 429
  • 大于 500

对于其他错误代码,它会将删除操作视为失败。

重要

资源组删除不可逆。

删除资源组

使用以下方法之一删除资源组。

Remove-AzResourceGroup -Name ExampleResourceGroup

删除资源

使用以下方法之一删除资源。

Remove-AzResource `
  -ResourceGroupName ExampleResourceGroup `
  -ResourceName ExampleVM `
  -ResourceType Microsoft.Compute/virtualMachines

所需的访问权限和删除失败

若要删除资源组,你需要访问“Microsoft.Resources/subscriptions/resourceGroups”资源的删除操作。

重要

删除资源组所需的唯一权限是删除资源组的删除操作权限。 无需权限即可删除该资源组中的各个资源。 此外,notActions 中为 roleAssignment 指定的删除操作将替换为资源组删除操作。 这与 Azure 基于角色的访问控制模型中的范围层次结构一致。

有关操作的列表,请参阅 Azure 资源提供程序操作。 有关内置角色的列表,请参阅 Azure 内置角色

如果你具有所需的访问权限,但删除请求失败,则可能是因为资源或资源组上存在锁定。 即使未手动锁定资源组,相关服务也可能会自动锁定它。 或如果资源连接到其他未删除的资源组中的资源,则删除可能会失败。 例如,不能删除子网仍被某个虚拟机使用的虚拟网络。

是否可以恢复已删除的资源组?

否,无法恢复已删除的资源组。 但是,你可能能够恢复一些最近删除的资源。

某些资源类型支持软删除。 可能必须先配置软删除,然后才能使用它。 有关启用软删除的信息,请参阅:

若要恢复已删除的资源,请参阅:

还可创建 Azure 支持案例。 尽可能提供已删除资源的详细信息,包括其资源 ID、类型和资源名称。 请求支持工程师检查是否可以恢复资源。

注意

并非在所有情况下都可以恢复已删除的资源。 支持工程师将调查情况并建议是否可行。

后续步骤