通过


配置参考

本文提供了 Databricks 资产捆绑包配置 (YAML) 支持的键的参考。 请参阅什么是 Databricks 资产捆绑包?

有关完整的捆绑包示例,请参阅 捆绑包配置示例捆绑包示例 GitHub 存储库

artifacts

Type: Map

指定要在捆绑部署期间自动生成的项目,这些项目稍后可在捆绑运行中使用。 每个键都是项目的名称,值是定义项目生成设置的映射。

小窍门

可以定义、合并和替代捆绑包中项目的设置,如 “替代”和目标设置中所述。

在 Databricks CLI 版本 0.229.0 中添加

artifacts:
  <artifact-name>:
    <artifact-field-name>: <artifact-field-value>
类型 描述
build 字符串 一组可选的生成命令,用于在部署之前在本地运行。 对于 Python wheel 生成,Databricks CLI 假定它可以找到 Python wheel 包的本地安装来运行生成,并且在每个捆绑包部署期间默认运行命令 python setup.py bdist_wheel。 在单独的行上指定多个生成命令。
在 Databricks CLI 版本 0.229.0 中添加
dynamic_version 布尔 是否根据 whl 文件的时间戳动态修补 wheel 版本。 如果设置为 true,则可以部署新代码,而无需更新 setup.py 版本或 pyproject.toml。 仅当 type 设置为 whl 时,该设置才有效。
在 Databricks CLI 版本 0.245.0 中添加
executable 字符串 可执行类型。 有效值为 bashshcmd
在 Databricks CLI 版本 0.229.0 中添加
files 序列 生成的项目文件的相对路径或绝对路径。 请参阅 artifacts.name.files
在 Databricks CLI 版本 0.229.0 中添加
path 字符串 项目目录的本地路径。 路径相对于捆绑配置文件的位置。 对于 Python 滚轮生成,它是 Python 滚轮文件文件 setup.py 的路径。 如果未包含 path,Databricks CLI 会尝试在打包文件的根目录中查找 Python wheel 文件的 setup.py 文件。
在 Databricks CLI 版本 0.229.0 中添加
type 字符串 如果项目是 Python Wheel,则为必需项。 工件的类型。 有效值为 whljar。 无需指定此设置来生成其他项目。
在 Databricks CLI 版本 0.229.0 中添加

例子

以下配置使用诗歌生成 Python 滚轮:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

以下配置运行测试并生成滚轮。 有关用于 artifacts 生成滚轮的完整捆绑包教程,请参阅 使用 Databricks 资产捆绑包生成 Python 滚轮文件

artifacts:
  default:
    type: whl
    build: |-
      # run tests
      python -m pytest tests/ -v

      # build the actual artifact
      python setup.py bdist_wheel

    path: .

有关生成 JAR 并将其上传到 Unity 目录的示例配置,请参阅将 JAR 文件上传到 Unity 目录 捆绑包。

工件。name.files

Type: Sequence

生成的项目文件的相对路径或绝对路径。 用于 source 指定生成的项目。 路径相对于捆绑配置文件的位置。

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
source 字符串 必填。 项目源文件。
在 Databricks CLI 版本 0.229.0 中添加

捆绑销售

Type: Map

部署到此目标时的捆绑包属性。

捆绑配置文件必须仅包含一个顶级 bundle 映射。

bundle 映射必须包含一个用于指定捆绑包的编程(或逻辑)名称的 name 映射。 以下示例使用编程(或逻辑)名称 hello-bundle 声明一个捆绑包。

bundle:
  name: hello-bundle

bundle 映射还可以是顶级目标映射中一个或多个目标的子级。 其中的每个子 bundle 映射在目标级别指定任何非默认替代。

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
cluster_id 字符串 用于运行捆绑包的群集的 ID。 通过此密钥,可以指定要用作捆绑配置文件中其他地方定义的群集的替代的群集的 ID。 有关如何检索群集 ID 的信息,请参阅 计算资源 URL 和 ID
cluster_id 替代适用于仅开发应用场景,并且仅支持其 mode 映射设置为 development 的目标。 有关 target 映射的详细信息,请参阅目标
在 Databricks CLI 版本 0.229.0 中添加
compute_id 字符串 已弃用。 用于运行捆绑包的计算的 ID。
在 Databricks CLI 版本 0.229.0 中添加
databricks_cli_version 字符串 用于捆绑包的 Databricks CLI 版本。 请参阅 bundle.databricks_cli_version
在 Databricks CLI 版本 0.229.0 中添加
deployment 地图 捆绑部署的定义。 有关支持的属性,请参阅 Databricks 资产捆绑包部署模式。 请参阅 bundle.deployment
在 Databricks CLI 版本 0.229.0 中添加
git 地图 与捆绑包关联的 Git 版本控制详细信息。 有关支持的属性,请参阅 git
在 Databricks CLI 版本 0.229.0 中添加
name 字符串 捆绑包的名称。
在 Databricks CLI 版本 0.229.0 中添加
uuid 字符串 预留。 捆绑包的通用唯一标识符(UUID),用于唯一标识内部 Databricks 系统中的捆绑包。 当使用 Databricks 模板(使用 databricks bundle init 命令)初始化捆绑项目时,将生成此项。
在 Databricks CLI 版本 0.236.0 中添加

bundle.databricks_cli_version

bundle 映射可以包含约束程序包所需的 Databricks CLI 版本的 databricks_cli_version 映射。 这可以防止因使用特定版本的 Databricks CLI 不支持的映射引起的问题。

Databricks CLI 版本符合语义版本控制要求,且 databricks_cli_version 映射支持指定版本约束。 如果当前的 databricks --version 值不在捆绑包的 databricks_cli_version 映射中指定的边界内,则在捆绑包上执行 databricks bundle validate 时会出错。 以下示例演示了一些常见的版本约束语法:

bundle:
  name: hello-bundle
  databricks_cli_version: '0.218.0' # require Databricks CLI 0.218.0
bundle:
  name: hello-bundle
  databricks_cli_version: '0.218.*' # allow all patch versions of Databricks CLI 0.218
bundle:
  name: my-bundle
  databricks_cli_version: '>= 0.218.0' # allow any version of Databricks CLI 0.218.0 or higher
bundle:
  name: my-bundle
  databricks_cli_version: '>= 0.218.0, <= 1.0.0' # allow any Databricks CLI version between 0.218.0 and 1.0.0, inclusive

bundle.deployment

Type: Map

捆绑部署的定义

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
fail_on_active_runs 布尔 是否在活动运行中失败。 如果设置为 true,则可以中断正在运行的部署。
在 Databricks CLI 版本 0.229.0 中添加
lock 地图 部署锁属性。 请参阅 bundle.deployment.lock
在 Databricks CLI 版本 0.229.0 中添加

bundle.deployment.lock

Type: Map

部署锁属性。

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
enabled 布尔 是否启用此锁。
在 Databricks CLI 版本 0.229.0 中添加
force 布尔 是否强制执行此锁(如果已启用)。
在 Databricks CLI 版本 0.229.0 中添加

experimental

Type: Map

定义实验性特征的属性。

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
python 地图 已弃用。 请改用顶级 Python 映射。
在 Databricks CLI 版本 0.238.0 中添加
python_wheel_wrapper 布尔 是否使用 Python Wheel 包装器。
在 Databricks CLI 版本 0.229.0 中添加
scripts 地图 要运行的命令。
在 Databricks CLI 版本 0.229.0 中添加
skip_artifact_cleanup 布尔 确定是否跳过删除 .internal 其中 workspace.artifact_path的文件夹。 默认情况下,在部署期间上传新的生成项目(如 Python 轮)之前,会删除此文件夹。 true设置为跨部署保留现有项目。
在 Databricks CLI 版本 0.254.0 中添加
skip_name_prefix_for_schema 布尔 是否跳过向捆绑包中定义的 Unity 目录架构的名称添加前缀(在内 presets.name_prefix 设置或计算 mode: development)。
在 Databricks CLI 版本 0.255.0 中添加
use_legacy_run_as 布尔 是否使用旧版 run_as 行为。
在 Databricks CLI 版本 0.229.0 中添加

include

Type: Sequence

指定路径 glob 列表,其中包含要放入捆绑包中的配置文件。 这些路径 glob 是相对于以下位置的值:指定了路径 glob 的捆绑包配置文件所在的位置。 databricks.yml除此之外,必须使用include数组来指定要包含在捆绑包中的所有配置文件。

小窍门

若要在捆绑包中包含或排除其他文件,请使用 include 和 exclude

include 数组只能显示为顶级映射。

在 Databricks CLI 版本 0.229.0 中添加

以下示例配置包含三个配置文件。 这些文件与捆绑配置文件位于同一文件夹中:

include:
  - 'bundle.artifacts.yml'
  - 'bundle.resources.yml'
  - 'bundle.targets.yml'

以下示例配置包括文件名以 bundle 开头并以 .yml 结尾的所有文件。 这些文件与捆绑配置文件位于同一文件夹中:

include:
  - 'bundle*.yml'

权限

Type: Sequence

定义应用于捆绑包中定义的资源的权限,其中序列中的每个项都是特定实体的权限。 请参阅 在 Databricks 资产捆绑包中设置资源的权限

允许的顶级权限级别是 CAN_VIEWCAN_MANAGECAN_RUN

如果要将权限应用于特定资源,请参阅定义特定资源的权限

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
group_name 字符串 在级别中设置权限的组的名称。
在 Databricks CLI 版本 0.229.0 中添加
level 字符串 为此权限定义的用户、组、服务主体的允许权限。 此密钥的有效值因权限是在捆绑包的顶层还是特定资源上定义而有所不同。 请参阅 在 Databricks 资产捆绑包中设置资源的权限
在 Databricks CLI 版本 0.229.0 中添加
service_principal_name 字符串 在级别中设置权限的服务主体名称。
在 Databricks CLI 版本 0.229.0 中添加
user_name 字符串 在级别中设置权限的用户名称。
在 Databricks CLI 版本 0.229.0 中添加

以下示例配置定义应用于捆绑包中 resources 定义的所有资源的用户、组和服务主体的权限级别:

permissions:
  - level: CAN_VIEW
    group_name: test-group
  - level: CAN_MANAGE
    user_name: someone@example.com
  - level: CAN_RUN
    service_principal_name: 123456-abcdef

presets

Type: Map

定义捆绑包部署预设。 有关详细信息,请参阅 自定义预设

除非为预设指定了异常,否则如果同时 mode 设置和 presets 设置,预设将替代默认模式行为,并且各个资源的设置将替代预设。

在 Databricks CLI 版本 0.229.0 中添加

Preset 描述
artifacts_dynamic_version 是否在部署期间动态更新whl制品的版本。 有效值为 truefalse。 如果指定了顶级 artifacts.dynamic_version 配置设置,则会替代此预设。
在 Databricks CLI 版本 0.256.0 中添加
jobs_max_concurrent_runs 作业允许的最大并发运行数。
在 Databricks CLI 版本 0.229.0 中添加
name_prefix 要追加到资源名称前面的前缀字符串。
在 Databricks CLI 版本 0.229.0 中添加
pipelines_development 是否应在开发模式下锁定管道部署。 有效值为 truefalse
在 Databricks CLI 版本 0.229.0 中添加
source_linked_deployment 部署期间创建的资源是否指向工作区中的源文件,而不是工作区副本。
在 Databricks CLI 版本 0.236.0 中添加
tags 一组“键:值”标记,这些标记适用于支持标记的所有资源,包括作业和试验。 Databricks 资产捆绑包不支持资源的 schema 标记。
在 Databricks CLI 版本 0.229.0 中添加
trigger_pause_status 适用于所有触发器和计划的暂停状态。 有效值为 PAUSEDUNPAUSED
如果 mode 设置为 development,则 trigger_pause_status 则始终为 PAUSED
在 Databricks CLI 版本 0.229.0 中添加

Python

Type: Map

配置加载由 databricks-bundles package 定义的 Python 代码。 有关详细信息,请参阅 Python 中的捆绑配置

从 Databricks CLI 版本 0.275.0 中 experimental 移动

类型 描述
mutators 序列 Mutators 包含完全限定的变异器函数路径列表,例如 [my_project.mutators:add_default_cluster]
在 Databricks CLI 版本 0.238.0 中添加
resources 序列 资源包含完全限定的函数路径列表,用于加载 Python 代码中定义的资源,例如 ["my_project.resources:load_resources"]
在 Databricks CLI 版本 0.238.0 中添加
venv_path 字符串 路径到虚拟环境。 如果启用,Python 代码将在此环境中执行。 如果禁用,则默认使用当前 shell 中可用的 Python 解释器。
在 Databricks CLI 版本 0.238.0 中添加

资源

Type: Map

定义捆绑包的资源,其中每个键都是资源的名称,值是定义资源的映射。 有关 Databricks 资产捆绑包支持的资源和资源定义参考的详细信息,请参阅 Databricks 资产捆绑包资源

映射 resources 可以显示为顶级映射,也可以是顶级 目标 映射中一个或多个目标的子级,并且包括零种或一种 受支持的资源类型。 每个资源类型映射都包含一个或多个单独的资源声明,其中每个声明必须具有唯一的名称。 这些单独的资源声明使用相应对象的创建操作的请求有效负载(用 YAML 表示)来定义资源。 资源支持的属性是相应对象支持的字段。

Databricks REST API 参考中介绍了创建操作的请求有效负载,databricks bundle schema 命令将输出所有受支持的对象架构。 此外,如果在捆绑包配置文件中发现未知资源属性,databricks bundle validate 命令将返回警告。

有关捆绑包中支持的资源以及常见配置和示例的详细信息,请参阅 Databricks 资产捆绑包资源捆绑包配置示例

在 Databricks CLI 版本 0.229.0 中添加

resources:
  <resource-type>:
    <resource-name>:
      <resource-field-name>: <resource-field-value>
类型 描述
alerts 地图 捆绑包的警报 (v2) 定义,其中每个密钥都是警报的名称。 请参阅 警报
在 Databricks CLI 版本 0.279.0 中添加
apps 地图 捆绑包的 Databricks 应用程序定义,其中每个键都代表一个应用程序的名称。 请参阅应用
在 Databricks CLI 版本 0.239.0 中添加
catalogs 地图 捆绑包的目录(Unity 目录)定义,其中每个键都是目录的名称。 请参阅 目录
在 Databricks CLI 版本 0.287.0 中添加
clusters 地图 捆绑包的群集定义,其中每个密钥都是群集的名称。 请参阅 群集
在 Databricks CLI 版本 0.229.0 中添加
dashboards 地图 捆绑包的仪表板定义,其中每个键都是仪表板的名称。 请参阅 仪表板
在 Databricks CLI 版本 0.232.0 中添加
database_catalogs 地图 捆绑包的数据库目录定义,其中每个键都是数据库目录的名称。 请参阅 database_catalog
在 Databricks CLI 版本 0.265.0 中添加
database_instances 地图 捆绑包的数据库实例定义,其中每个密钥都是数据库实例的名称。 请参阅 database_instance
在 Databricks CLI 版本 0.265.0 中添加
experiments 地图 捆绑包的实验定义,其中的各键都是实验的名称。 请参阅 试验
在 Databricks CLI 版本 0.229.0 中添加
jobs 地图 捆绑包中作业的定义,其中每个键都是该作业的名称。 请参阅 job
在 Databricks CLI 版本 0.229.0 中添加
model_serving_endpoints 地图 捆绑包中模型服务端点的定义,其中每个键名都是模型服务端点的名称。 请参阅 model_serving_endpoint
在 Databricks CLI 版本 0.229.0 中添加
models 地图 捆绑包的模型定义,其中每个键都是模型的名称。 请参阅模型(旧版)。
在 Databricks CLI 版本 0.229.0 中添加
pipelines 地图 捆绑包的管道定义,其中每个键都是管道的名称。 请参阅 管道
在 Databricks CLI 版本 0.229.0 中添加
postgres_branches 地图 捆绑包的 Postgres 分支定义,其中每个密钥都是 Lakebase 分支的名称。 请参阅 postgres_branch
在 Databricks CLI 版本 0.287.0 中添加
postgres_endpoints 地图 捆绑包的 Postgres 终结点定义,其中每个密钥都是 Lakebase 计算终结点的名称。 请参阅 postgres_endpoint
在 Databricks CLI 版本 0.287.0 中添加
postgres_projects 地图 捆绑包的 Postgres 项目定义,其中每个键都是 Lakebase 项目的名称。 请参阅 postgres_project
在 Databricks CLI 版本 0.287.0 中添加
quality_monitors 地图 捆绑包的质量监视器定义,其中每个键都是质量监视器的名称。 请参阅quality_monitor(Unity Catalog)。
在 Databricks CLI 版本 0.229.0 中添加
registered_models 地图 捆绑包的已注册模型定义,其中每个密钥都是 Unity 目录注册模型的名称。 请参阅 registered_model (Unity Catalog)
在 Databricks CLI 版本 0.229.0 中添加
schemas 地图 捆绑包的架构定义,其中每个密钥都是架构的名称。 请参阅架构 (Unity Catalog)
在 Databricks CLI 版本 0.229.0 中添加
secret_scopes 地图 捆绑包的机密范围定义,其中每个密钥都是机密范围的名称。 请参阅 secret_scope
在 Databricks CLI 版本 0.252.0 中添加
sql_warehouses 地图 捆绑包的 SQL 仓库定义,其中每个密钥都是 SQL 仓库的名称。 请参阅 sql_warehouse
在 Databricks CLI 版本 0.260.0 中添加
synced_database_tables 地图 捆绑包的同步数据库表定义,其中每个键都是数据库表的名称。 请参阅 synced_database_table
在 Databricks CLI 版本 0.266.0 中添加
volumes 地图 捆绑包的卷定义,其中每个键都是卷的名称。 请参阅卷 (Unity Catalog)
在 Databricks CLI 版本 0.236.0 中添加

以下示例配置定义了一个作业资源。

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
        - task_key: hello-task
          existing_cluster_id: 1234-567890-abcde123
          notebook_task:
            notebook_path: ./hello.py

run_as

Type: Map

用于运行 Databricks 资产捆绑工作流的标识(user_nameservice_principal_name)。 它提供将用于部署捆绑作业或管道的标识与用于运行作业或管道的标识分开的功能。 请参阅指定 Databricks 资产捆绑包工作流的运行标识

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
service_principal_name 字符串 活动服务主体的应用程序 ID。 设置此字段需要 servicePrincipal/user 角色。
在 Databricks CLI 版本 0.229.0 中添加
user_name 字符串 活动工作区用户的电子邮件。 非管理员用户只能将此字段设置为自己的电子邮件。
在 Databricks CLI 版本 0.229.0 中添加

脚本

Type: Map

可以用bundle run 运行的脚本。 映射中的每个 scripts 命名脚本都包含带有命令的内容。 请参阅 “执行脚本”。

在 Databricks CLI 版本 0.259.0 中添加

scripts:
  <script-name>:
    <script-field-name>: <script-field-value>
类型 描述
content 字符串 要运行的命令
在 Databricks CLI 版本 0.259.0 中添加

例子

scripts:
  my_script:
    content: uv run pytest -m ${bundle.target}

同步

Type: Map

要包含或排除在集合中的文件和文件路径。

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
exclude 序列 要从捆绑包中排除的文件或文件夹的列表。 请参阅 include 和 exclude
在 Databricks CLI 版本 0.229.0 中添加
include 序列 要包含在捆绑包中的文件或文件夹的列表。 请参阅 include 和 exclude
在 Databricks CLI 版本 0.229.0 中添加
paths 序列 部署捆绑包时要同步到工作区的本地文件夹路径(可以位于捆绑包根目录外部)。 请参阅 sync.paths
在 Databricks CLI 版本 0.229.0 中添加

包括和排除

include 映射中的 excludesync 映射指定要包含在捆绑部署中或从捆绑部署中排除的文件或文件夹的列表,具体取决于以下规则:

  • 根据捆绑包根目录的 .gitignore 文件中的任何文件和路径 glob 列表,include 映射可以包含相对于捆绑包根目录的文件 glob 和/或路径 glob 的列表,以便显式包含。
  • 根据捆绑包根目录的 .gitignore 文件中的任何文件和路径 glob 列表,以及 include 映射中文件和路径 glob 的列表,exclude 映射可以包含相对于捆绑包根目录的文件 glob 和/或路径 glob 的列表,以便显式排除。

所有指定文件和文件夹的路径均相对于指定它们的捆绑配置文件的位置。

includeexclude 文件和路径模式的语法遵循标准 .gitignore 模式语法。 请参阅 gitignore 模式格式

例如,如果以下 .gitignore 文件包含以下条目:

.databricks
my_package/dist

捆绑包配置文件包含以下 include 映射:

sync:
  include:
    - my_package/dist/*.whl

那么,my_package/dist 文件夹中文件扩展名为 *.whl 的所有文件将包含在内。 my_package/dist 文件夹中的任何其他文件不会包含在内。

但是,如果捆绑包配置文件还包含以下 exclude 映射:

sync:
  include:
    - my_package/dist/*.whl
  exclude:
    - my_package/dist/delete-me.whl

那么,my_package/dist 文件夹中文件扩展名为 *.whl 的所有文件(名称为 delete-me.whl 的文件除外)将包含在内。 my_package/dist 文件夹中的任何其他文件也不会包含在内。

还可以在特定目标的 sync 映射中声明 targets 映射。 目标中声明的任何 sync 映射将与任何顶级 sync 映射声明合并。 例如,在前面的示例中,include 级别的以下 targets 映射将与顶级 include 映射的 sync 映射合并:

targets:
  dev:
    sync:
      include:
        - my_package/dist/delete-me.whl

sync.paths

映射 sync 可以包含一个 paths 映射,用于指定要同步到工作区的本地路径。 通过 paths 映射,可以跨捆绑包共享通用文件,并可用于同步位于捆绑包根目录之外的文件。 (捆绑包根目录是 databricks.yml 文件的位置。)如果单个存储库托管多个捆绑包,并且想要共享库、代码文件或配置,这尤其有用。

指定的路径必须与设置 paths 映射的文件夹上的文件和目录相对。 如果一个或多个路径值遍历目录到捆绑包根目录的上级目录,则会动态确定根路径,以确保文件夹结构保持不变。 例如,如果捆绑包根目录文件夹名为 my_bundle,则 databricks.yml 中的此配置将同步位于捆绑包根目录上一级的 common 文件夹和捆绑包根目录本身:

sync:
  paths:
    - ../common
    - .

部署此捆绑包会在工作区中产生以下文件夹结构:

common/
  common_file.txt
my_bundle/
  databricks.yml
  src/
    ...

目标

Type: Map

定义捆绑包的部署目标上下文。 每个 目标 都是项目的唯一集合、Azure Databricks 工作区设置,有时特定于目标的资源详细信息。

targets 映射由一个或多个目标映射组成,每个目标映射必须具有唯一的编程(或逻辑)名称。 此映射是可选的,但强烈建议这样做。

映射中的targets设置优先于顶级工作区项目和资源映射中指定的设置。

目标还可以替代任何顶级变量的值。

在 Databricks CLI 版本 0.229.0 中添加

targets:
  <target-name>:
    <target-field-name>: <target-field-value>
类型 描述
artifacts 地图 要包含在目标部署中的项目。 请参阅工件
在 Databricks CLI 版本 0.229.0 中添加
bundle 地图 部署到此目标时的捆绑包属性。 请参阅 捆绑包
在 Databricks CLI 版本 0.229.0 中添加
cluster_id 字符串 要用于此目标的群集 ID。
在 Databricks CLI 版本 0.229.0 中添加
compute_id 字符串 已弃用。 要用于此目标的计算 ID。
default 布尔 此目标是否为默认目标。 请参阅目标。name.default
在 Databricks CLI 版本 0.229.0 中添加
git 地图 目标的 Git 版本控制设置。 请参阅 git
在 Databricks CLI 版本 0.229.0 中添加
mode 字符串 目标的部署模式。 有效值为 developmentproduction。 请参阅目标。name.modeDatabricks 资产捆绑包部署模式
在 Databricks CLI 版本 0.229.0 中添加
permissions 序列 在目标中部署和运行捆绑包的权限。 查看 权限
在 Databricks CLI 版本 0.229.0 中添加
presets 地图 目标的部署预设。 请参阅 targets.name.presets
在 Databricks CLI 版本 0.229.0 中添加
resources 地图 目标的资源定义。 查看资源
在 Databricks CLI 版本 0.229.0 中添加
run_as 地图 用于运行捆绑包的标识。 请参阅 run_as指定 Databricks 资产捆绑包工作流的运行标识
在 Databricks CLI 版本 0.229.0 中添加
sync 地图 捆绑包运行或部署时需同步至目标工作区的本地路径。 请参阅 sync
在 Databricks CLI 版本 0.229.0 中添加
variables 地图 目标的自定义变量定义。 请参阅变量
在 Databricks CLI 版本 0.229.0 中添加
workspace 地图 目标的 Databricks 工作区。 请参阅 workspace
在 Databricks CLI 版本 0.229.0 中添加

目标。name.default

若要为捆绑包命令指定目标默认值,请将 default 映射设置为 true。 例如,名为 dev 的目标是默认目标:

targets:
  dev:
    default: true

如果未配置默认目标,或者想要在特定目标内验证、部署和运行作业或管道,请使用捆绑包命令的 -t 选项。

以下命令在 my_jobdev 目标中验证、部署和运行 prod

databricks bundle validate
databricks bundle deploy -t dev
databricks bundle run -t dev my_job
databricks bundle validate
databricks bundle deploy -t prod
databricks bundle run -t prod my_job

以下示例声明两个目标。 第一个目标具有名称 dev,是未为捆绑包命令指定目标时使用的默认目标。 第二个目标具有名称 prod,仅在为捆绑包命令指定此目标时才使用。

targets:
  dev:
    default: true
  prod:
    workspace:
      host: https://<production-workspace-url>

目标。name.mode

为了方便开发和 CI/CD 最佳做法,Databricks 资产捆绑包为目标提供了部署模式,其为预生产和生产工作流设置默认行为。 某些行为也可以使用目标进行配置name.presets

有关详细信息,请参阅 Databricks 资产捆绑包部署模式

小窍门

若要为捆绑包设置运行标识,还可以为每个目标指定 run_as,如指定 Databricks 资产捆绑包工作流的运行标识中所述。

若要指定将目标视为开发目标,请添加 mode 映射并将其设置为 development。 若要指定将目标视为生产目标,请添加 mode 映射并将其设置为 production。 例如,此名为 prod 的目标被视为生产目标:

targets:
  prod:
    mode: production

目标。name.presets

可以使用映射自定义某些目标部署 mode 行为 presets

有关可用预设的列表,请参阅自定义预设

以下示例显示了为所有生产资源添加前缀和标签的自定义生产目标:

targets:
  prod:
    mode: production
    presets:
      name_prefix: 'production_' # prefix all resource names with production_
      tags:
        prod: true

变量

Type: Map

定义捆绑包的自定义变量。 对于每个变量,请设置可选说明、默认值、自定义变量是否为复杂类型、用于检索 ID 值的查找,使用如下格式:

variables:
  <variable-name>:
    description: <variable-description>
    default: <optional-default-value>
    type: <optional-type-value> # "complex" is the only valid value
    lookup:
      <optional-object-type>: <optional-object-name>

注释

除非 string 设置为 type,否则变量假定为类型 complex。 请参阅定义复杂变量

若要在捆绑包配置中引用自定义变量,请使用替换 ${var.<variable_name>}

有关自定义变量和替换的详细信息,请参阅 Databricks 资产捆绑包中的替换和变量

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
default 任意 变量的默认值。
在 Databricks CLI 版本 0.229.0 中添加
description 字符串 变量的说明。
在 Databricks CLI 版本 0.229.0 中添加
lookup 地图 要检索其 ID 的 alertcluster_policyclusterdashboardinstance_pooljobmetastorepipelinequeryservice_principalwarehouse 对象的名称。 请参阅变量。name.lookup
在 Databricks CLI 版本 0.229.0 中添加
type 字符串 变量的类型,简单或复杂。 仅当变量很复杂时设置此键。 有效值: complex.
在 Databricks CLI 版本 0.229.0 中添加

variables.name.lookup

Type: Map

要检索 ID 的警报、cluster_policy、群集、仪表板、instance_pool、作业、元存储、管道、查询、service_principal 或仓库对象的名称。 有关使用查找的信息,请参阅 检索对象的 ID 值

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
alert 字符串 要检索 ID 的警报名称‌。
在 Databricks CLI 版本 0.229.0 中添加
cluster 字符串 要检索 ID 的群集名称。
在 Databricks CLI 版本 0.229.0 中添加
cluster_policy 字符串 要检索 ID 的 cluster_policy 名称。
在 Databricks CLI 版本 0.229.0 中添加
dashboard 字符串 要检索 ID 的仪表板名称。
在 Databricks CLI 版本 0.229.0 中添加
instance_pool 字符串 要检索 ID 的 instance_pool 名称。
在 Databricks CLI 版本 0.229.0 中添加
job 字符串 要检索 ID 的作业名称。
在 Databricks CLI 版本 0.229.0 中添加
metastore 字符串 要检索 ID 的元存储系统名称。
在 Databricks CLI 版本 0.229.0 中添加
notification_destination 字符串 要检索 ID 的 notification_destination 名称。
在 Databricks CLI 版本 0.236.0 中添加
pipeline 字符串 要检索 ID 的管道名称。
在 Databricks CLI 版本 0.229.0 中添加
query 字符串 要检索 ID 的查询名称。
在 Databricks CLI 版本 0.229.0 中添加
service_principal 字符串 要检索 ID 的 service_principal 名称。
在 Databricks CLI 版本 0.229.0 中添加
warehouse 字符串 要检索 ID 的仓库名称。
在 Databricks CLI 版本 0.229.0 中添加

工作区

Type: Map

定义捆绑包的 Databricks 工作区。 捆绑包配置文件只能包含一个顶级 workspace 映射,该映射指定要使用的任何非默认 Azure Databricks 工作区设置。

重要

有效的 Databricks 工作区路径开头为 /Workspace,但还支持 /Volumes(适用于工件)。 自定义工作区路径会自动添加 /Workspace 前缀;因此,如果在自定义路径中使用任何工作区路径替换(如 ${workspace.file_path}),则不需要在路径前添加 /Workspace

在 Databricks CLI 版本 0.229.0 中添加

类型 描述
artifact_path 字符串 在工作区中用于部署和工作流程运行的项目路径
在 Databricks CLI 版本 0.229.0 中添加
auth_type 字符串 要使用的身份验证类型,尤其是在 Databricks CLI 推断出意外的身份验证类型的情况下尤其重要。 请参阅 授权访问 Azure Databricks 资源
在 Databricks CLI 版本 0.229.0 中添加
azure_client_id 字符串 Azure 客户端 ID。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
azure_environment 字符串 Azure 环境。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
azure_login_app_id 字符串 Azure 登录应用 ID。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
azure_tenant_id 字符串 Azure 租户 ID。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
azure_use_msi 布尔 是否对 Azure 使用 MSI。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
azure_workspace_resource_id 字符串 Azure 工作区资源 ID。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
client_id 字符串 工作区的客户端 ID。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
file_path 字符串 在工作区中用于部署和工作流运行的文件路径。 请参阅 workspace.file_path
在 Databricks CLI 版本 0.229.0 中添加
google_service_account 字符串 Google 服务帐户名称。 请参阅 工作区身份验证
在 Databricks CLI 版本 0.229.0 中添加
host 字符串 Databricks 工作区主机 URL。 请参阅 工作区实例名称、URL 和 ID
设置 host 映射会指示 Databricks CLI 在 .databrickscfg 文件中查找匹配的配置文件,然后使用该配置文件的字段来确定要使用的 Databricks 身份验证类型。 如果文件中.databrickscfg存在多个具有匹配host字段的配置文件,则必须使用profile映射(或--profile-p命令行选项)来指定配置文件。
在 Databricks CLI 版本 0.229.0 中添加
profile 字符串 Databricks 工作区配置文件名称。 请参阅 workspace.profile
在 Databricks CLI 版本 0.229.0 中添加
resource_path 字符串 工作区资源路径
在 Databricks CLI 版本 0.230.0 中添加
root_path 字符串 Databricks 工作区根路径。 请参阅 workspace.root_path
在 Databricks CLI 版本 0.229.0 中添加
state_path 字符串 工作区状态路径。 此密钥默认为默认路径 ${workspace.root}/state ,表示工作区中存储有关部署的 Terraform 状态信息的路径。
在 Databricks CLI 版本 0.229.0 中添加

工作区身份验证

工作区映射还可以包含用于指定 Databricks 身份验证机制的映射。 如果未在顶级工作区映射中指定它们,则必须在工作区映射中将其指定为顶级目标映射中一个或多个目标的子级。

  • 对于 OAuth 计算机到计算机 (M2M) 身份验证,请使用映射 client_id。 也可以在本地环境变量 DATABRICKS_CLIENT_ID 中设置此值。 或者,可以使用 client_id 值创建配置文件,然后使用 profile 映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)。 请参阅 使用 OAuth 授权服务主体访问 Azure Databricks

    注释

    不能在捆绑包配置文件中指定 Azure Databricks OAuth 机密值。 应该设置本地环境变量 DATABRICKS_CLIENT_SECRET。 或者,可以将 client_secret 值添加到配置文件,然后使用 profile 映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)。

  • 对于 Azure CLI 身份验证,将使用映射 azure_workspace_resource_id。 也可以在本地环境变量 DATABRICKS_AZURE_RESOURCE_ID 中设置此值。 或者,可以使用 azure_workspace_resource_id 值创建配置文件,然后使用 profile 映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)。 请参阅 使用 Azure CLI 进行身份验证

  • 对于使用服务主体的 Azure 客户端机密身份验证,将使用映射 azure_workspace_resource_idazure_tenant_idazure_client_id。 也可以分别在局部环境变量 DATABRICKS_AZURE_RESOURCE_IDARM_TENANT_IDARM_CLIENT_ID 中设置这些值。 或者,可以使用 azure_workspace_resource_idazure_tenant_idazure_client_id 值创建配置文件,然后使用 profile 映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)。 请参阅 使用 Microsoft Entra 服务主体进行身份验证

    注释

    不能在捆绑包配置文件中指定 Azure 客户端密码值。 应该设置本地环境变量 ARM_CLIENT_SECRET。 或者,可以将 azure_client_secret 值添加到配置文件,然后使用 profile 映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)。

  • 对于 Azure 托管标识身份验证,将使用映射 azure_use_msiazure_client_idazure_workspace_resource_id。 也可以分别在局部环境变量 ARM_USE_MSIARM_CLIENT_IDDATABRICKS_AZURE_RESOURCE_ID 中设置这些值。 或者,可以使用 azure_use_msiazure_client_idazure_workspace_resource_id 值创建配置文件,然后使用 profile 映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)。 请参阅 使用 Azure 托管标识进行身份验证

  • azure_environment 映射为一组特定的 API 终结点指定 Azure 环境类型(例如 Public、UsGov、China 和 Germany)。 默认值为 PUBLIC。 也可以在本地环境变量 ARM_ENVIRONMENT 中设置此值。 或者,可以将 azure_environment 值添加到配置文件,然后使用 profile 映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)。

  • azure_login_app_id 映射不可操作,保留供内部使用。

workspace.root_path

workspace 映射可以包含 root_path 映射,以指定要在工作区中用于部署和工作流运行的非默认根目录路径,例如:

workspace:
  root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}

默认情况下,对于 root_path,Databricks CLI 使用 /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target} 的默认路径,该路径使用替换

workspace.artifact_path

workspace 映射也可以包含 artifact_path 映射,以指定要在工作区中用于部署和工作流运行的非默认项目路径,例如:

workspace:
  artifact_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/artifacts

默认情况下,对于 artifact_path,Databricks CLI 使用 ${workspace.root}/artifacts 的默认路径,该路径使用替换

注释

artifact_path 映射不支持 Databricks 文件系统 (DBFS) 路径。

workspace.file_path

workspace 映射也可以包含 file_path 映射,以指定要在工作区中用于部署和工作流运行的非默认文件路径,例如:

workspace:
  file_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/files

默认情况下,对于 file_path,Databricks CLI 使用 ${workspace.root}/files 的默认路径,该路径使用替换

重要

不能使用${var.*}语法为这些身份验证值指定自定义变量

workspace.profile

注释

Databricks 建议使用 host 映射(或使用 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用 --profile-p 选项)代替 profile 映射,因为这样可以使捆绑包配置文件更易于移植。

映射 profile 指定用于向此 Azure Databricks 工作区进行身份验证的配置文件的名称。 此配置文件映射到在设置 Databricks CLI 时创建的配置文件。

常见对象

git

Type: Map

定义 git 版本控制详细信息。 这对于传播稍后可用于标识资源的部署元数据非常有用。 例如,您可以溯源由 CI/CD 部署的作业所在的存储库。

每当运行 bundle 命令(例如 validatedeployrun)时,bundle 命令都会使用以下默认设置填充命令的配置树:

若要检索或覆盖 Git 设置,捆绑包必须位于与 Git 存储库关联的目录中,例如通过运行 git clone 命令初始化的本地目录。 如果目录未与 Git 存储库关联,则这些 Git 设置为空。

类型 描述
branch 字符串 当前的 Git 分支名称。 该值与从克隆存储库运行命令 git branch --show-current 时获得的值相同。 可以使用替换在捆绑包配置文件(如 ${bundle.git.branch})中引用此值。
origin_url 字符串 存储库的源 URL。 该值与从克隆存储库运行命令 git config --get remote.origin.url 时获得的值相同。 可以使用替换在捆绑包配置文件(如 ${bundle.git.origin_url})中引用此值。

例子

如果需要,origin_url可以在顶级bundle映射的映射中git重写和branch设置:

bundle:
  git:
    origin_url: <some-non-default-origin-url>
    branch: <some-non-current-branch-name>