如何通过Azure CLI部署创建并干净删除Databricks及关联资源?
干净删除Azure Databricks及其关联资源组的方法
常规ARM模板部署与资源删除命令
- 创建资源(ARM模板结合Azure CLI):
az deployment group create --resource-group $resourceGroupName --template-file "infra/template.json" --parameters "infra/parameters.json" - 删除资源组:
az group delete --name $resourceGroupName
Databricks部署的特殊问题
部署Azure Databricks时,系统会自动生成托管资源组(命名格式一般为databricks-<工作区名称>-<随机字符串>)。这类资源组不会随Databricks所在的资源组删除而被清理,会残留下来。
解决方案
方法1:直接删除Databricks工作区(推荐)
用Azure CLI删除Databricks工作区,该操作会自动关联删除对应的托管资源组:
az databricks workspace delete --resource-group $resourceGroupName --name $workspaceName --yes
注:
--yes参数会跳过确认提示,直接执行删除。
方法2:ARM模板中配置托管资源组删除策略
如果通过ARM模板部署Databricks,可在模板里设置deleteManagedResourceGroupOnDelete为true,这样删除工作区时会自动清理托管资源组:
{ "type": "Microsoft.Databricks/workspaces", "apiVersion": "2023-02-01", "name": "[parameters('workspaceName')]", "location": "[parameters('location')]", "properties": { "managedResourceGroupId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('managedResourceGroupName'))]", "deleteManagedResourceGroupOnDelete": true } }
部署该配置的模板后,后续执行常规资源组删除命令或直接删除工作区,都会自动清理托管资源组。
方法3:脚本批量清理残留托管资源组
如果已有残留的托管资源组,可通过脚本批量识别并删除:
Bash脚本示例
# 列出所有Databricks托管资源组 managedGroups=$(az group list --query "[?contains(name, 'databricks-')].name" -o tsv) # 逐个删除 for group in $managedGroups; do echo "正在删除资源组: $group" az group delete --name $group --yes done
内容的提问来源于stack exchange,提问作者billmanH
相关产品推荐
相关产品推荐

