0

我正在编写一个脚本,它将获取资源组中的所有资源并删除它们,然后在 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 中的每个资源都有一个依赖属性,这样您就可以看到需要删除哪些东西才能成为能够删除该项目。

4

2 回答 2

0

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

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

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

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

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

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

于 2019-01-08T06:32:09.610 回答
0

5个月大,但这可能对其他人有帮助。如果打算删除与 RG 关联的资源,那么一种方法是要求 ARM 在“完整”部署选项中在您当前的 RG(具有资源)中部署无资源模板。在“完整”选项中,将部署模板中提到的任何资源,并且将删除模板中未提及的资源(在现有 RG 上)。因此,如果模板中未指定资源,则应删除资源,并使用 ARM 提供的适当依赖性和并行性优势

于 2019-01-08T06:23:21.263 回答