我正在编写一个脚本,该脚本将获取资源组中的所有资源并删除它们,然后在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属性,以便您可以看到需要删除哪些内容。才能删除该项目。
答案 0 :(得分:0)
5个月大,但这可能会对其他人有所帮助。如果打算删除与RG相关联的资源,则一种方法是要求ARM在“完整”部署选项中的当前RG(具有资源)中部署无资源模板。在“完成”选项中,将部署模板中提及的任何资源,而模板中未提及的资源将被删除(在现有RG上)。因此,如果模板中未指定任何资源,则应删除这些资源,并具有ARM提供的适当的依赖性和并行性优势
答案 1 :(得分:0)
您还可以查看ARM在删除时如何确定依赖关系-如果您要一个一个地删除依赖关系,
========= 删除资源组时,资源管理器确定删除资源的顺序。它使用以下顺序:
所有子级(嵌套)资源均被删除。
接下来将删除管理其他资源的资源。资源可以设置ManagedBy属性,以指示其他资源对其进行管理。设置此属性后,管理其他资源的资源将在其他资源之前被删除。