Databricks 资产捆绑包部署模式

重要

此功能目前以公共预览版提供。

本文介绍 Databricks 资产捆绑包部署模式的语法。 捆绑包支持以编程方式管理 Azure Databricks 工作流。 请参阅什么是 Databricks 资产捆绑包?

在 CI/CD 工作流中,开发人员通常在不同的阶段或 模式中编写代码、测试、部署和运行解决方案。 例如,最简单的模式集包括用于预生产验证的开发模式,然后是用于已验证可交付结果的生产模式。 Databricks 资产捆绑包提供一套可选的默认行为,对应各模式。 捆绑包部署可将这些行为与单行模式声明一起使用,而不是在捆绑包设置文件中手动指定这些默认行为 - 在此过程中,可能会忘记添加或配置一种更符合预期的行为。

开发模式

若要在开发模式下部署捆绑包,必须先将 mode 映射(设置为 development)添加到预期目标。 例如,此名为 dev 的目标被视为开发目标:

targets:
  dev:
    mode: development

通过运行 databricks bundle deploy -t <target-name> 命令部署开发目标可实现以下行为:

  • 在未部署为文件或笔记本的所有资源前添加前缀 [dev ${workspace.current_user.userName}] ,并使用 dev Azure Databricks 标记给每个已部署的作业和管道打上标记。
  • 将所有相关的已部署增量实时表管道标记为 development: true。 请参阅使用开发模式运行管道更新
  • 允许在对 bundle deploy 命令的相关调用中使用 --compute-id <cluster-id>,这将替代相关捆绑包配置文件中已指定的所有现有群集定义。 可以在此处将 compute_id 映射(或作为 bundle 映射的子映射)设置为要使用的群集 ID,而不是在对 bundle deploy 命令的相关调用中使用 --compute-id <cluster-id>
  • 暂停相关已部署作业上的所有计划和触发器。
  • 在所有相关的已部署作业上启用并发运行。

生产模式

若要在生产模式下部署捆绑包,必须先将 mode 映射(设置为 production)添加到预期目标。 例如,此名为 prod 的目标被视为生产目标:

targets:
  prod:
    mode: production

通过运行 databricks bundle deploy -t <target-name> 命令部署生产目标可实现以下行为:

  • 验证所有已部署的相关增量实时表管道都标记为 development: false

  • 验证当前 Git 分支等于目标中指定的 Git 分支。 可以选择在目标中指定 Git 分支,这一操作可以通过其他 git 属性来完成,如下所示:

    git:
      branch: main
    

    在部署时指定 --force 可以重写此验证。

  • Databricks 建议使用服务主体进行生产部署。 可以通过将 run_as 设置为服务主体来强制执行此操作。 请参阅管理服务主体指定 Databricks 资产捆绑包工作流的运行标识。 如果不使用服务主体,请注意以下额外行为:

    • 验证 artifact_pathfile_pathroot_pathstate_path 映射未重写给特定用户。
    • 验证已指定 run_aspermissions 映射,以明确具有特定部署权限的身份。
  • 与前面将 mode 映射设置为 development 的行为不同,如果将 mode 映射设置为 production,则无法通过某种方式(例如使用 --compute-id <cluster-id> 选项或 compute_id 映射)替代相关捆绑包配置文件中指定的任何现有群集定义。