繁体   English   中英

销毁ARM模板部署创建的资源

[英]Destroy resources created by ARM template deployment

需要使用什么特定语法才能成功销毁以下代码中由devenvironment部署组创建的所有资源?

上下文:

运行以下命令时,将在 Azure 中创建资源集合:

az deployment group create --name devenvironment --resource-group myResourceGroupDev --template-file C:\path\to\my.template.json --parameters C:\path\to\my.parameters.json --verbose  

问题:

我们遇到的问题是以下命令在 Azure 中保留了所有创建的资源:

az deployment group delete --name devenvironment --resource-group myResourceGroupDev --verbose  

az deployment group delete命令所做的只是删除包装器devenvironment ,它与使用上面的az deployment group create命令创建的资源相关联。 az deployment group delete命令无法对创建的实际资源产生任何影响。

期望的结果:

我们想要的是一个命令,它将导致销毁由az deployment group create命令创建的所有资源。

我们想要像terraform destroy这样的命令来销毁在 ARM 部署中创建的所有资源,但使用的是az cli。

什么样的特定语法会带来我们想要的结果?

我们没有任何直接的 cmdlet 可以删除使用 arm 模板在特定部署中部署的所有资源。

您可以使用以下 Azure CLI Cmdlet 或 PowerShell cmdlet,这将删除使用 arm 模板部署的资源。

为了在我们的本地环境中对此进行测试,我们使用 arm 模板创建了一个 webapp & app 服务计划。 使用以下 cmdlet,我们能够成功删除这些资源。

以下是 Azure CLI cmdlet:

resourcelist=$(az deployment group  show --resource-group '<rgName>' --name '<deploymentName>' --query "properties.outputResources[].id" -o tsv)
for resource in $resourcelist; do az resource delete --ids $resource; done

下面是样本Output供参考:

在此处输入图像描述

以下是 PowerShell cmdlet:

$resourcelist=Get-AzResourceGroupDeploymentOperation -ResourceGroupName '<resourceGroupName>' -Name '<deploymentName>'
foreach ($resource in $resourcelist){
    if( $resource.TargetResource -ne $null){
         Remove-AzResource -ResourceId $resource.TargetResource -Force 
         Write-Output "Resource got delete successfully"$resource.TargetResource
  }
}

下面是样本Output供参考:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM