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

Cod*_*Med 5 azure azure-resource-manager azure-rm-template

需要使用什么特定语法才能成功销毁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  
Run Code Online (Sandbox Code Playgroud)

问题:

我们遇到的问题是以下命令使 Azure 中所有创建的资源完好无损:

az deployment group delete --name devenvironment --resource-group myResourceGroupDev --verbose  
Run Code Online (Sandbox Code Playgroud)

此命令所做的只是删除与使用上述命令创建的资源关联的az deployment group delete包装器。此命令对创建的实际资源没有任何影响。devenvironmentaz deployment group createaz deployment group delete

期望的结果:

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

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

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

Ven*_*dda 4

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

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

为了在我们的本地环境中测试这一点,我们使用arm模板创建了一个web应用程序和应用程序服务计划。使用以下 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
Run Code Online (Sandbox Code Playgroud)

这是供参考的示例输出:

在此输入图像描述

以下是 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
  }
}
Run Code Online (Sandbox Code Playgroud)

这是供参考的示例输出:

在此输入图像描述