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

使用Azure AD认证触发Databricks Notebook时Github Action报错

问题排查与解决方案建议

针对你遇到的GitHub Action切换Azure AD认证后触发Databricks单元测试时的权限错误,以下是具体的排查方向和解决建议:

1. 定位错误中的资源ID(83958068369529)

  • 这个数字大概率是Databricks的资源ID,优先检查目标作业的ID是否匹配:在Databricks工作区的作业页面,通过搜索栏输入该ID,确认是否为你要触发的单元测试作业。
  • 如果不是作业ID,可通过Databricks工作区的审计日志(路径:工作区管理 > 审计日志)搜索该SPN的操作记录,找到对应权限错误的条目,查看resource_type字段明确资源类型(可能是集群、笔记本或其他)。

2. 补充SPN的基础权限

即使你已给SPN赋予作业的「Can manage run」权限,GitHub Action内部可能会先调用Get Job API验证作业存在,这需要SPN对该作业拥有View权限。操作步骤:

  • 进入目标作业的详情页,点击右上角的「权限」按钮;
  • 添加你的服务主体(SPN),并授予「View」权限;
  • 重新运行GitHub Action测试。

3. 验证GitHub Action的令牌有效性

Postman调用API正常但Action失败,可能是Action获取的Azure AD令牌存在差异:

  • 在工作流中开启调试日志:在工作流文件中添加环境变量ACTIONS_STEP_DEBUG: true,重新运行后查看Action的详细日志,提取获取到的Bearer令牌;
  • 用JWT解析工具(如jwt.io)解析令牌,检查aud字段是否为2ff814a6-3304-4ab8-85cb-cd0e6f879c1d(Databricks服务的固定受众ID);
  • 如果受众不符,需确认GitHub Action的Azure AD配置是否正确,确保令牌是针对Databricks服务请求的。

4. 模拟Action的API调用流程

直接在工作流中用curl模拟Action的操作,排查是否为Action自身的逻辑问题:

- name: Test Databricks API with Azure AD
  env:
    DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
    AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
    AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
    AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
  run: |
    # 获取Azure AD令牌
    TOKEN=$(curl -X POST "https://login.microsoftonline.com/$AZURE_TENANT_ID/oauth2/token" \
      -F "grant_type=client_credentials" \
      -F "client_id=$AZURE_CLIENT_ID" \
      -F "client_secret=$AZURE_CLIENT_SECRET" \
      -F "resource=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" | jq -r .access_token)
    
    # 先调用Get Job API(模拟Action的前置检查)
    curl -H "Authorization: Bearer $TOKEN" "$DATABRICKS_HOST/api/2.1/jobs/get?job_id=83958068369529"
    
    # 再调用run-now API
    curl -X POST -H "Authorization: Bearer $TOKEN" "$DATABRICKS_HOST/api/2.1/jobs/run-now" -d '{"job_id": 83958068369529}'

如果Get Job API返回权限错误,说明确实需要补充View权限;如果两个API都正常,那大概率是GitHub Action预览版的逻辑缺陷。

5. 已知预览版缺陷参考

由于该功能处于公开预览阶段,部分用户反馈过Action的权限检查逻辑存在冗余:

  • Action可能会额外检查作业关联的集群、笔记本等资源的权限,即使这些资源不需要直接操作;
  • 部分场景下,Action对Azure AD令牌的处理存在bug,导致权限验证失败。

若以上排查后仍无法解决,可在Databricks官方论坛提交反馈,附带Action的完整调试日志和审计日志信息,以便官方定位预览版的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:26:07