如何根据 Azure 中的部署名称删除所有已部署的资源
How to remove all deployed resources based on deployment name in Azure
我正在使用 ARM 模板配置新的 Azure 环境。
为了部署,我使用 Azure PowerShell New-AzureRmResourceGroupDeployment
命令,我在其中指定 DeploymentName
、 ResourceGroupName
等
但是,当我想通过 运行
删除已部署的资源时
Remove-AzureRmResourceGroupDeployment -Name DeploymentName -ResourceGroupName RGname -Force
它不会删除资源。它只是删除 Azure 门户部署选项卡中的标记。有没有办法回滚或删除相关资源的部署?我不想删除整个资源组。
Microsoft 的一般指导是资源组包含零个或多个共享公共生命周期的资源。因此,他们可能会告诉您将不同的部署分成不同的资源组。
我实际上已经尝试过与您之前相同的操作,但是删除部署只会删除部署元数据,而不是部署提供的实际资源。根据他们所属的最新部署,能够 "slice and dice" 资源将是一个很好的功能请求。
这是支持文档:
All of the resources in your group should share the same lifecycle. You will deploy, update and delete them together. If one resource, such as a database server, needs to exist on a different deployment cycle it should be in another resource group.
https://azure.microsoft.com/en-us/documentation/articles/resource-group-overview/#resource-groups
要删除特定资源组下的所有已部署资源,
你应该使用 Azure PowerShell 命令:
Remove-AzureRmResourceGroup [-Name] <ResourceGroupName> [-Force <SwitchParameter>]
Remove-AzureRmResourceGroupDeployment
仅按名称和资源组名称删除了特定部署,但未删除资源。
希望对您有所帮助!
如果您想卷起袖子写更多的代码,您可以这样做...尽管 Trevor Sullivan 对资源的整体管理有最好的建议。
看看这个 cmdlet:
(Get-AzureRmResourceGroupDeploymentOperation -DeploymentName $DeploymentName -ResourceGroupName $RGName).Properties.ProvisioningOperation
(Get-AzureRmResourceGroupDeploymentOperation -DeploymentName $DeploymentName -ResourceGroupName $RGName).Properties.TargetResource.id
第一个会告诉您操作是否是对资源的创建操作,第二个会告诉您 resourceId,然后您可以使用它来删除:
Remove-AzureRMResource
但是,如果您按生命周期组织资源组,则删除整个组会更容易。
这里要注意的另一件事是相互依赖的资源。我不确定在这些情况下会发生什么(删除失败等)。我想不出要注意的具体问题,只是我没有花太多时间以这种方式查看 "clean up"...
我正在使用 ARM 模板配置新的 Azure 环境。
为了部署,我使用 Azure PowerShell New-AzureRmResourceGroupDeployment
命令,我在其中指定 DeploymentName
、 ResourceGroupName
等
但是,当我想通过 运行
删除已部署的资源时Remove-AzureRmResourceGroupDeployment -Name DeploymentName -ResourceGroupName RGname -Force
它不会删除资源。它只是删除 Azure 门户部署选项卡中的标记。有没有办法回滚或删除相关资源的部署?我不想删除整个资源组。
Microsoft 的一般指导是资源组包含零个或多个共享公共生命周期的资源。因此,他们可能会告诉您将不同的部署分成不同的资源组。
我实际上已经尝试过与您之前相同的操作,但是删除部署只会删除部署元数据,而不是部署提供的实际资源。根据他们所属的最新部署,能够 "slice and dice" 资源将是一个很好的功能请求。
这是支持文档:
All of the resources in your group should share the same lifecycle. You will deploy, update and delete them together. If one resource, such as a database server, needs to exist on a different deployment cycle it should be in another resource group.
https://azure.microsoft.com/en-us/documentation/articles/resource-group-overview/#resource-groups
要删除特定资源组下的所有已部署资源,
你应该使用 Azure PowerShell 命令:
Remove-AzureRmResourceGroup [-Name] <ResourceGroupName> [-Force <SwitchParameter>]
Remove-AzureRmResourceGroupDeployment
仅按名称和资源组名称删除了特定部署,但未删除资源。
希望对您有所帮助!
如果您想卷起袖子写更多的代码,您可以这样做...尽管 Trevor Sullivan 对资源的整体管理有最好的建议。
看看这个 cmdlet:
(Get-AzureRmResourceGroupDeploymentOperation -DeploymentName $DeploymentName -ResourceGroupName $RGName).Properties.ProvisioningOperation
(Get-AzureRmResourceGroupDeploymentOperation -DeploymentName $DeploymentName -ResourceGroupName $RGName).Properties.TargetResource.id
第一个会告诉您操作是否是对资源的创建操作,第二个会告诉您 resourceId,然后您可以使用它来删除:
Remove-AzureRMResource
但是,如果您按生命周期组织资源组,则删除整个组会更容易。
这里要注意的另一件事是相互依赖的资源。我不确定在这些情况下会发生什么(删除失败等)。我想不出要注意的具体问题,只是我没有花太多时间以这种方式查看 "clean up"...