共用方式為

授权服务主体访问 Git 文件夹

服务主体是用于在 Azure Databricks 中对自动化工作流进行身份验证的非人类标识。 在自动执行 Git 文件夹操作时(例如在作业运行之前拉取最新代码或以编程方式更新 CI/CD 管道中的笔记本),服务主账号需要其专属的 Git 凭据才能访问 Git 提供商。 本页介绍如何使用 UI 或 CLI 将 Git 凭据链接到服务主体。

小窍门

将服务主体用于自动化或共享工作流,例如 CI/CD 管道和计划作业。 如果你以单个用户的身份以交互方式工作,请改用自己的 Git 凭据。 请参阅 将 Git 提供程序连接到 Databricks

注释

如果将 Azure DevOps 与 Microsoft Entra ID 用于自动化,请参阅 授权 Microsoft Entra 服务主体访问 Git 文件夹 以获取具体配置步骤。

将 Git 凭据链接到服务主体:

  1. 以工作区管理员身份登录到 Azure Databricks 工作区。

  2. 单击顶部栏中的用户名,然后选择 “设置”。

  3. 单击“ 标识和访问 ”选项卡。

  4. 服务主体旁边,单击管理

  5. 选择要使用 Git 凭据更新的服务主体。

  6. 单击 “Git 集成 ”选项卡。

  7. 单击 “添加 Git 凭据”。

  8. 从下拉菜单中选择 Git 提供程序,并填写必填字段。

  9. 单击“ 保存 ”或 “链接”,具体取决于所选提供商。

服务主体现在在自动化过程中访问 Azure Databricks 工作区 Git 文件夹资源时使用链接的 Git 凭据。

使用 Databricks CLI 配置服务主体 Git 访问,用于自动化工作流。

注释

在开始之前,请确认已做好以下准备:

若要使用 Databricks CLI 为服务主体提供对 Git 文件夹的授权访问权限,请执行以下作:

  1. 在工作区中创建服务主体:

    databricks service-principals create \
     --display-name "Git Automation Service Principal"
    

    记下输出中的 applicationId 值和 id 值。 后续步骤中需要用到它们。

  2. 为服务主体生成 OAuth 机密:

    databricks service-principal-secrets-proxy create \
     <service-principal-id>
    

    <service-principal-id>替换为上一步中的15位id值。

    从输出中复制secret值。

  3. 为服务主体添加 Git 提供程序凭据。

    使用 OAuth 将 Databricks CLI 配置为作为服务主体进行身份验证:

    export DATABRICKS_HOST=<workspace-url>
    export DATABRICKS_CLIENT_ID=<application-id>
    export DATABRICKS_CLIENT_SECRET=<oauth-secret>
    

    替换为:

    • <workspace-url> 配合工作区 URL 使用
    • <application-id> 步骤 1 中的应用程序 ID
    • <oauth-secret> 使用步骤 2 中的 OAuth 机密

    然后添加 Git 凭据:

    databricks git-credentials create <git-provider> \
     --personal-access-token <git-pat> \
     --git-email <git-email>
    

    替换为:

    • 与您的提供商(例如 <git-provider>gitHub)一起使用gitLab
    • <git-pat> 使用 Git 提供程序个人访问令牌
    • <git-email> 使用 Git 电子邮件地址

    某些 Git 提供程序需要 --git-username--git-email 才能正常进行身份验证。 例如,GitHub 至少需要其中一个参数。

现在,服务主体可以使用链接凭据访问 Git 文件夹。

以编程方式检索服务主体

使用 Databricks SDK、REST API 或 CLI 检索工作区的服务主体。

若要从笔记本中使用 Databricks SDK,请执行以下作:

  1. 安装 Databricks SDK: %pip install databricks-sdk --upgrade

  2. ApiClient 导入 databricks.sdk.core

  3. 调用服务主体 API。

有关代码示例,请参阅 用于 Python 的 Databricks SDK 文档

还可以使用 curlDatabricks CLI 或 Terraform 以编程方式处理服务主体。

后续步骤