本文提供了 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 |
字符串 | 可执行类型。 有效值为 bash、sh和 cmd。在 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,则为必需项。 工件的类型。 有效值为 whl 和 jar。 无需指定此设置来生成其他项目。在 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_VIEW、CAN_MANAGE 和 CAN_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制品的版本。 有效值为 true 或 false。 如果指定了顶级 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 |
是否应在开发模式下锁定管道部署。 有效值为 true 或 false。在 Databricks CLI 版本 0.229.0 中添加 |
source_linked_deployment |
部署期间创建的资源是否指向工作区中的源文件,而不是工作区副本。 在 Databricks CLI 版本 0.236.0 中添加 |
tags |
一组“键:值”标记,这些标记适用于支持标记的所有资源,包括作业和试验。 Databricks 资产捆绑包不支持资源的 schema 标记。在 Databricks CLI 版本 0.229.0 中添加 |
trigger_pause_status |
适用于所有触发器和计划的暂停状态。 有效值为 PAUSED 或 UNPAUSED。如果 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_name 或 service_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 映射中的 exclude 和 sync 映射指定要包含在捆绑部署中或从捆绑部署中排除的文件或文件夹的列表,具体取决于以下规则:
- 根据捆绑包根目录的
.gitignore文件中的任何文件和路径 glob 列表,include映射可以包含相对于捆绑包根目录的文件 glob 和/或路径 glob 的列表,以便显式包含。 - 根据捆绑包根目录的
.gitignore文件中的任何文件和路径 glob 列表,以及include映射中文件和路径 glob 的列表,exclude映射可以包含相对于捆绑包根目录的文件 glob 和/或路径 glob 的列表,以便显式排除。
所有指定文件和文件夹的路径均相对于指定它们的捆绑配置文件的位置。
include 和 exclude 文件和路径模式的语法遵循标准 .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 |
字符串 | 目标的部署模式。 有效值为 development 或 production。 请参阅目标。name.mode 和 Databricks 资产捆绑包部署模式。在 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_job 和 dev 目标中验证、部署和运行 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 的 alert、cluster_policy、cluster、dashboard、instance_pool、job、metastore、pipeline、query、service_principal 或 warehouse 对象的名称。 请参阅变量。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_id、azure_tenant_id和azure_client_id。 也可以分别在局部环境变量DATABRICKS_AZURE_RESOURCE_ID、ARM_TENANT_ID和ARM_CLIENT_ID中设置这些值。 或者,可以使用azure_workspace_resource_id、azure_tenant_id和azure_client_id值创建配置文件,然后使用profile映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用--profile或-p选项)。 请参阅 使用 Microsoft Entra 服务主体进行身份验证。注释
不能在捆绑包配置文件中指定 Azure 客户端密码值。 应该设置本地环境变量
ARM_CLIENT_SECRET。 或者,可以将azure_client_secret值添加到配置文件,然后使用profile映射指定配置文件的名称(或者在通过 Databricks CLI 运行捆绑包验证、部署、运行和销毁命令时使用--profile或-p选项)。对于 Azure 托管标识身份验证,将使用映射
azure_use_msi、azure_client_id和azure_workspace_resource_id。 也可以分别在局部环境变量ARM_USE_MSI、ARM_CLIENT_ID和DATABRICKS_AZURE_RESOURCE_ID中设置这些值。 或者,可以使用azure_use_msi、azure_client_id和azure_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 命令(例如 validate、deploy 或 run)时,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>