首页 > 解决方案 > AzureStack 删除资源组中的所有资源及其依赖资源

问题描述

我正在编写一个脚本,它将获取资源组中的所有资源并删除它们,然后在 azurestack 环境中删除资源组本身。我不能只使用

$Resources = Find-AzureRmResource -ResourceGroupName $ResourceGroupName

foreach ($resource in $Resources)
{
    Remove-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceName $resource .Name -ResourceType $resource.ResourceType -Force
}

因为如果我的资源组中有优惠并且该优惠中有订阅,那么在删除其中的所有订阅之前我无法删除该优惠。我的问题是:有没有办法获取资源组 $RG 中的每个资源 $A 以及该资源 $A 的所有依赖资源 $D 并删除它们?

资源组中可以有这么多类型的资源,我不确定“优惠”之外的其他资源是什么,这些资源可能具有在删除资源之前必须先删除的依赖项。例如,如果我的资源组中有虚拟机,是否需要先删除网络适配器?

删除资源组中的资源的层次结构是什么以及它们如何相互依赖。(我希望 Azurestack 中的每个资源都有一个依赖属性,这样您就可以看到需要删除哪些东西才能成为能够删除该项目。

标签: azure-resource-groupazure-stack

解决方案


您还可以查看 ARM 在删除时如何决定依赖关系 - 如果您想一一删除它们

https://docs.microsoft.com/ga-ie/azure/azure-resource-manager/resource-group-delete?view=azurermps-6.10.0

========= 当您删除资源组时,资源管理器会确定删除资源的顺序。它使用以下顺序:

所有子(嵌套)资源都将被删除。

接下来删除管理其他资源的资源。资源可以设置 managedBy 属性以指示不同的资源管理它。设置此属性时,管理其他资源的资源在其他资源之前被删除。

删除前两个类别后剩余的资源


推荐阅读