如何根据Azure中的部署名称删除所有已部署的资源

时间:2016-03-24 23:14:38

标签: azure azure-powershell azure-resource-manager azure-deployment arm-template

我正在使用ARM模板配置新的Azure环境。 为了部署,我使用Azure PowerShell New-AzureRmResourceGroupDeployment命令,在其中指定DeploymentNameResourceGroupName等。

但是,当我想通过运行

删除已部署的资源时
Remove-AzureRmResourceGroupDeployment -Name DeploymentName -ResourceGroupName RGname -Force 

它不会删除资源。它只删除Azure门户中部署选项卡中的标记。有没有办法回滚或删除相关资源的部署?我不想删除整个资源组。

3 个答案:

答案 0 :(得分:9)

Microsoft的一般指导是资源组包含零个或多个共享共同生命周期的资源。因此,他们可能会告诉您将不同的部署分成不同的资源组。

我实际上尝试过以前的相同操作,但删除部署只会删除部署元数据,而不会删除部署配置的实际资源。这将是一个伟大的功能要求,能够切片和骰子"资源,基于他们所属的最新部署。

以下是支持文档:

  

您组中的所有资源都应该共享相同的生命周期。您将一起部署,更新和删除它们。如果一个资源(如数据库服务器)需要在不同的部署周期中存在,则它应该位于另一个资源组中。

https://azure.microsoft.com/en-us/documentation/articles/resource-group-overview/#resource-groups

enter image description here

答案 1 :(得分:2)

如果你想卷起袖子并写一些代码,你可以这样做......虽然Trevor Sullivan对资源的整体管理有最好的建议。

看看这个cmdlet:

(Get-AzureRmResourceGroupDeploymentOperation -DeploymentName $DeploymentName -ResourceGroupName $RGName).Properties.ProvisioningOperation

(Get-AzureRmResourceGroupDeploymentOperation -DeploymentName $DeploymentName -ResourceGroupName $RGName).Properties.TargetResource.id

第一个将告诉您操作是否是对资源的创建操作,第二个将为您提供resourceId,然后您可以使用它来删除:

Remove-AzureRMResource

但是,如果按生命周期组织资源组,则删除整个组会更容易。

这里要注意的另一件事是彼此依赖的资源。我不确定在这些情况下会发生什么(无法​​删除等)。我想不出一个需要注意的具体问题,只是因为我没有花太多时间以这种方式看待“清理”......

答案 2 :(得分:-1)

删除特定资源组下的所有已部署资源

您应该使用Azure PowerShell命令:

Remove-AzureRmResourceGroup [-Name] <ResourceGroupName> [-Force <SwitchParameter>]

Remove-AzureRmResourceGroupDeployment仅按名称和资源组名称删除了特定部署,但未删除资源。

希望这有帮助!