10

I'm working on provisioning new Azure environment using ARM templates. In order to deploy I use the Azure PowerShell New-AzureRmResourceGroupDeployment command, where I specify DeploymentName , ResourceGroupName etc.

However, when I want to remove the deployed resources by running

Remove-AzureRmResourceGroupDeployment -Name DeploymentName -ResourceGroupName RGname -Force 

it does not remove resources. It just deletes a tag in deployment tab in Azure portal. Is there a way to rollback or remove deployment with related resources? I don't want to delete whole Resource group.

4

3 回答 3

11

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

我实际上已经尝试过与您之前相同的操作,但删除部署只会删除部署元数据,而不是部署提供的实际资源。能够根据他们所属的最新部署对资源进行“切片和切块”,这将是一个很棒的功能请求。

以下是支持文档:

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

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

在此处输入图像描述

于 2016-03-25T01:06:18.957 回答
2

如果您想卷起袖子并编写更多代码,则可以这样做……尽管 Trevor Sullivan 对资源的整体管理提出了最佳建议。

看看这个 cmdlet:

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

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

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

Remove-AzureRMResource

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

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

于 2016-03-25T17:01:21.087 回答
-3

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

您应该使用 Azure PowerShell 命令:

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

Remove-AzureRmResourceGroupDeployment仅按名称和资源组名称而不是资源删除了特定部署。

希望这可以帮助!

于 2016-03-25T01:06:36.653 回答