AzureStack删除资源组中的所有资源及其从属资源

时间:2018-08-09 23:50:39

标签: azure-resource-group azure-stack

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

$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中每个资源都有一个dependents属性,以便您可以看到需要删除哪些内容。才能删除该项目。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您还可以查看ARM在删除时如何确定依赖关系-如果您要一个一个地删除依赖关系,

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

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

所有子级(嵌套)资源均被删除。

接下来将删除管理其他资源的资源。资源可以设置ManagedBy属性,以指示其他资源对其进行管理。设置此属性后,管理其他资源的资源将在其他资源之前被删除。

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