如何通过Azure DevOps快速搭建Azure Databricks的CI/CD流水线?
简易Azure DevOps CI/CD实现Databricks Dev到Prod代码推送
前置准备
- 确认Dev Databricks代码已同步至Azure Repos(你已完成此步骤)
- 在Azure DevOps中创建两个服务连接:Databricks Dev和Databricks Prod,使用个人访问令牌(PAT)或Azure AD认证,确保拥有工作区代码读写权限
核心实现:YAML流水线(最简版)
直接利用Azure DevOps内置的Databricks任务,无需复杂自定义脚本:
1. 拉取代码(CI阶段)
触发分支设为你的Dev代码分支,指定要同步的代码路径:
trigger: branches: include: - main # 替换为你的Dev代码分支,如dev paths: include: - /databricks-notebooks/** # 仅同步此路径下的代码 pool: vmImage: 'ubuntu-latest' steps: - checkout: self fetchDepth: 1
2. 推送至Prod Databricks(CD阶段)
使用DatabricksDeployScriptsToWorkspace任务一键同步代码:
- task: DatabricksDeployScriptsToWorkspace@0 inputs: azureSubscription: '你的Azure订阅服务连接' databricksWorkspaceUrl: 'https://<你的Prod Databricks实例>.azuredatabricks.net/' databricksAccessToken: '$(prod-databricks-pat)' # 将PAT存入Azure DevOps加密变量组 sourcePath: '$(System.DefaultWorkingDirectory)/databricks-notebooks' targetPath: '/Prod/Notebooks' # Prod工作区的目标目录 overwrite: true # 覆盖目标目录下的现有代码 clean: false # 若需清空目标目录再同步,设为true
简化技巧
- 将Databricks的PAT、Workspace URL存入Azure DevOps变量组,避免硬编码,方便多环境管理
- 若只需同步特定文件(如
.ipynb、.py),可在sourcePath后添加过滤规则,或用FileTransform任务提前筛选文件 - 无需测试环节的话可直接同步;若需验证代码,添加
DatabricksRunNotebook任务在Dev环境执行测试,通过后再推送Prod
轻量替代方案:Databricks CLI
如果不想用内置任务,用CLI命令行更灵活:
- 流水线中安装CLI:
pip install databricks-cli - 配置Prod环境:
databricks configure --token --host https://<你的Prod实例>.azuredatabricks.net/(PAT通过变量传入) - 同步代码:
databricks workspace import_dir --overwrite ./databricks-notebooks /Prod/Notebooks
此方式支持自定义排除规则,适合复杂场景。
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

