You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Azure Databricks与Azure DevOps实现无PAT的CI-CD仓库更新

无需个人PAT实现Databricks仓库更新的CI/CD流程

核心思路

不用个人PAT的核心是通过Azure AD服务主体完成两层认证:一是服务主体与Databricks工作区的身份认证,二是服务主体与Azure DevOps Git仓库的SSH密钥认证,替代传统的PAT方式。

具体步骤

1. 配置Azure AD服务主体权限

  • 在Azure AD注册服务主体,记录其应用ID和客户端密钥(或证书)。
  • 在Azure DevOps目标仓库的「设置-存储库权限」中添加该服务主体,分配「Contributor」权限,确保能读写仓库内容。
  • 在Databricks工作区中,给服务主体分配「Workspace Admin」或针对性的「Repos管理权限」,保证能执行仓库更新操作。

2. 为服务主体配置Git SSH凭证

  • 为服务主体生成SSH密钥对(用ssh-keygen命令生成,无需设置密码)。
  • 在Azure DevOps仓库的「设置-SSH公钥」中添加服务主体的SSH公钥,关联到服务主体的应用ID。
  • 用Terraform配置Databricks的Git凭证,替换原PAT为SSH密钥:
resource "databricks_git_credential" "ado_sp" {
  git_username          = "<服务主体应用ID>"
  git_provider          = "azureDevOpsServices"
  ssh_public_key        = "<服务主体SSH公钥内容>"
  ssh_private_key       = "<服务主体SSH私钥内容>"
}

执行terraform apply后,Databricks工作区就会关联服务主体的SSH凭证,无需再用个人PAT。

3. CI/CD管道中用服务主体令牌认证Databricks

在Azure DevOps管道中执行以下步骤完成仓库更新:

  • 用Azure CLI获取服务主体的Databricks访问令牌:
az login --service-principal -u <服务主体应用ID> -p <客户端密钥> --tenant <租户ID>
DATABRICKS_TOKEN=$(az account get-access-token --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d --query accessToken -o tsv)
  • 配置Databricks CLI使用该令牌:
databricks configure --aad-token --host <Databricks工作区URL>
  • 执行仓库更新命令:
databricks repos update --path /Repos/<目标路径> --branch <分支名>

4. 权限验证

  • 测试服务主体能否通过SSH方式克隆Azure DevOps仓库。
  • 确认服务主体在Databricks中能查看、更新目标仓库。

内容的提问来源于stack exchange,提问作者pythonist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:31:18