[英]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.