Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается синтаксис файлов конфигурации пакета ресурсов Databricks, определяющих пакеты ресурсов Databricks. См. раздел "Что такое пакеты ресурсов Databricks?".
Сведения о создании и работе с пакетами см. в статье "Разработка пакетов ресурсов Databricks".
databricks.yml
Пакет должен содержать один (и только один) файл конфигурации с именем databricks.yml
в корне папки проекта пакета.
databricks.yml
— это основной файл конфигурации, определяющий пакет, но он может ссылаться на другие файлы конфигурации, такие как файлы конфигурации ресурсов, в сопоставлении include
. Конфигурация пакета выражается в YAML. Дополнительные сведения о YAML см. в официальной спецификации YAML.
Самый простой databricks.yml
определяет имя пакета, которое находится в требуемом пакете сопоставления верхнего уровня и целевом развертывании.
bundle:
name: my_bundle
targets:
dev:
default: true
Дополнительные сведения обо всех сопоставлениях верхнего уровня см. в разделе "Сопоставления".
Совет
Поддержка Python для пакетов ресурсов Databricks позволяет определять ресурсы в Python. См. раздел "Конфигурация пакета" в Python.
Спецификация
Следующая спецификация YAML предоставляет ключи конфигурации верхнего уровня для пакетов ресурсов Databricks. Справочник по конфигурации см. в справочнике по конфигурации.
# This is the default bundle configuration if not otherwise overridden in
# the "targets" top-level mapping.
bundle: # Required.
name: string # Required.
databricks_cli_version: string
cluster_id: string
deployment: Map
git:
origin_url: string
branch: string
# This is the identity to use to run the bundle
run_as:
- user_name: <user-name>
- service_principal_name: <service-principal-name>
# These are any additional configuration files to include.
include:
- '<some-file-or-path-glob-to-include>'
- '<another-file-or-path-glob-to-include>'
# These are any scripts that can be run.
scripts:
<some-unique-script-name>:
content: string
# These are any additional files or paths to include or exclude.
sync:
include:
- '<some-file-or-path-glob-to-include>'
- '<another-file-or-path-glob-to-include>'
exclude:
- '<some-file-or-path-glob-to-exclude>'
- '<another-file-or-path-glob-to-exclude>'
paths:
- '<some-file-or-path-to-synchronize>'
# These are the default artifact settings if not otherwise overridden in
# the targets top-level mapping.
artifacts:
<some-unique-artifact-identifier>:
build: string
dynamic_version: boolean
executable: string
files:
- source: string
path: string
type: string
# These are for any custom variables for use throughout the bundle.
variables:
<some-unique-variable-name>:
description: string
default: string or complex
lookup: Map
type: string
# These are the default workspace settings if not otherwise overridden in
# the targets top-level mapping.
workspace:
artifact_path: string
auth_type: string
azure_client_id: string # For Azure Databricks only.
azure_environment: string # For Azure Databricks only.
azure_login_app_id: string # For Azure Databricks only. Reserved for future use.
azure_tenant_id: string # For Azure Databricks only.
azure_use_msi: true | false # For Azure Databricks only.
azure_workspace_resource_id: string # For Azure Databricks only.
client_id: string # For Databricks on AWS only.
file_path: string
google_service_account: string # For Databricks on Google Cloud only.
host: string
profile: string
resource_path: string
root_path: string
state_path: string
# These are the permissions to apply to resources defined
# in the resources mapping.
permissions:
- level: <permission-level>
group_name: <unique-group-name>
- level: <permission-level>
user_name: <unique-user-name>
- level: <permission-level>
service_principal_name: <unique-principal-name>
# These are the resource settings if not otherwise overridden in
# the targets top-level mapping.
resources:
apps:
<unique-app-name>:
# See the REST API create request payload reference for apps.
clusters:
<unique-cluster-name>:
# See the REST API create request payload reference for clusters.
dashboards:
<unique-dashboard-name>:
# See the REST API create request payload reference for dashboards.
experiments:
<unique-experiment-name>:
# See the REST API create request payload reference for experiments.
jobs:
<unique-job-name>:
# See REST API create request payload reference for jobs.
model_serving_endpoint:
<unique-model-serving-endpoint-name>:
# See the model serving endpoint request payload reference.
models:
<unique-model-name>:
# See the REST API create request payload reference for models (legacy).
pipelines:
<unique-pipeline-name>:
# See the REST API create request payload reference for :re[LDP] (pipelines).
quality_monitors:
<unique-quality-monitor-name>:
# See the quality monitor request payload reference.
registered_models:
<unique-registered-model-name>:
# See the registered model request payload reference.
schemas:
<unique-schema-name>:
# See the Unity Catalog schema request payload reference.
secret_scopes:
<unique-secret-scope-name>:
# See the secret scope request payload reference.
volumes:
<unique-volume-name>:
# See the Unity Catalog volume request payload reference.
# These are the targets to use for deployments and workflow runs. One and only one of these
# targets can be set to "default: true".
targets:
<some-unique-programmatic-identifier-for-this-target>:
artifacts:
# See the preceding "artifacts" syntax.
bundle:
# See the preceding "bundle" syntax.
default: boolean
git: Map
mode: string
permissions:
# See the preceding "permissions" syntax.
presets:
<preset>: <value>
resources:
# See the preceding "resources" syntax.
sync:
# See the preceding "sync" syntax.
variables:
<preceding-unique-variable-name>: <non-default-value>
workspace:
# See the preceding "workspace" syntax.
run_as:
# See the preceding "run_as" syntax.
Примеры
В этом разделе содержатся некоторые основные примеры, которые помогут понять, как работают пакеты и как структурировать конфигурацию.
Примечание.
Примеры конфигурации, демонстрирующие функции пакета и распространенные варианты использования пакета, см. в примерах конфигурациипакета и репозитории примеров пакетов в GitHub.
В следующем примере конфигурация пакета указывает локальный файл с именем hello.py
, который находится в том же каталоге, что и файл databricks.yml
конфигурации пакета. Он запускает эту записную книжку в качестве задания с помощью удаленного кластера с указанным идентификатором кластера. URL-адрес удалённой рабочей области и учетные данные аутентификации рабочей области считываются из локального профиля конфигурации пользователя, указанного в .
bundle:
name: hello-bundle
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
targets:
dev:
default: true
В следующем примере добавляется целевой объект с именемprod
, использующим другой URL-адрес удаленной рабочей области и учетные данные проверки подлинности рабочей области, которые считываются из соответствующей записи файла .databrickscfg
вызывающего объекта host
с указанным URL-адресом рабочей области. Это задание выполняет тот же блокнот, но использует другой удаленный кластер с указанным идентификатором кластера.
Примечание.
Databricks рекомендует использовать host
сопоставление вместо default
сопоставления везде, где это возможно, так как это делает файлы конфигурации пакета более переносимыми.
host
Установка сопоставления указывает интерфейсу командной строки Databricks найти соответствующий профиль в файле .databrickscfg
, а затем использовать поля этого профиля для определения используемого типа проверки подлинности Databricks. Если существует несколько профилей с host
соответствующим полем, необходимо использовать --profile
параметр в командах пакета, чтобы указать используемый профиль.
Обратите внимание, что не нужно объявлять сопоставление notebook_task
внутри сопоставления prod
, так как оно возвращается к использованию сопоставления notebook_task
внутри сопоставления верхнего уровня resources
, если сопоставление notebook_task
не переопределяется явным образом в сопоставлении prod
.
bundle:
name: hello-bundle
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
targets:
dev:
default: true
prod:
workspace:
host: https://<production-workspace-url>
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 2345-678901-fabcd456
Используйте следующие команды пакета для проверки, развертывания и запуска этого задания в целевом объекте dev
. Дополнительные сведения о жизненном цикле пакета см. в разделе "Разработка пакетов активов Databricks".
# Because the "dev" target is set to "default: true",
# you do not need to specify "-t dev":
databricks bundle validate
databricks bundle deploy
databricks bundle run hello_job
# But you can still explicitly specify it, if you want or need to:
databricks bundle validate
databricks bundle deploy -t dev
databricks bundle run -t dev hello_job
Чтобы проверить, развернуть и запустить это задание в целевом объекте, выполните следующее prod
:
# You must specify "-t prod", because the "dev" target
# is already set to "default: true":
databricks bundle validate
databricks bundle deploy -t prod
databricks bundle run -t prod hello_job
Для достижения более модульной структуры и лучшего повторного использования определений и настроек в различных пакетах, разбейте конфигурацию вашего пакета на отдельные файлы:
# databricks.yml
bundle:
name: hello-bundle
include:
- '*.yml'
# hello-job.yml
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
# targets.yml
targets:
dev:
default: true
prod:
workspace:
host: https://<production-workspace-url>
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 2345-678901-fabcd456
Сопоставления
В следующих разделах описаны картирования конфигурации пакета верхнего уровня. Справочник по конфигурации см. в справочнике по конфигурации.
- связка
- run_as
- включать
- Скрипты
- синхронизировать
- Артефакты
- Переменные
- рабочая область
- Разрешения
- ресурсы
- Цели
связка
Файл конфигурации пакета должен содержать только одно сопоставление верхнего уровня bundle
, которое связывает содержимое пакета и параметры рабочей области Azure Databricks.
Это bundle
сопоставление должно содержать name
сопоставление, указывающее программное (или логическое) имя пакета. В следующем примере объявляется пакет с программным (или логическим) именем hello-bundle
.
bundle:
name: hello-bundle
Сопоставление bundle
также может быть дочерним элементом одного или нескольких целевых объектов в сопоставлении целевых объектов верхнего уровня. Каждое из этих дочерних bundle
сопоставлений указывает любые переопределения, отличные от по умолчанию, на целевом уровне. Однако значение bundle
сопоставления верхнего уровня name
нельзя переопределить на целевом уровне.
идентификатор_кластера
Сопоставление bundle
может иметь дочернее cluster_id
сопоставление. Это сопоставление позволяет указать идентификатор кластера, который будет использоваться в качестве переопределения для кластеров, определенных в другом месте файла конфигурации пакета. Сведения о том, как получить идентификатор кластера, см. в разделе URL-адрес и идентификатор кластера.
cluster_id
Переопределение предназначено исключительно для сценариев разработки и поддерживается только для целевого объекта, для которого задано mode
значение сопоставления с development
. Для получения дополнительной информации о сопоставлении target
, см. цели.
compute_id
Примечание.
Этот параметр не рекомендуется. Вместо этого используйте cluster_id .
Сопоставление bundle
может иметь дочернее compute_id
сопоставление. Это сопоставление позволяет указать идентификатор кластера, который будет использоваться в качестве переопределения для кластеров, определенных в другом месте файла конфигурации пакета.
Git
Вы можете получить и переопределить сведения об управлении версиями Git, связанные с пакетом, что полезно для распространения метаданных развертывания, которые можно использовать позже для идентификации ресурсов. Например, можно отслеживать происхождение репозитория задачи, развернутой с помощью CI/CD.
При каждом выполнении команды bundle
, такой как validate
, deploy
или run
, команда bundle
заполняет дерево конфигурации команды следующими параметрами по умолчанию:
-
bundle.git.origin_url
, представляющий URL-адрес источника репозитория. Это то же значение, что и при выполнении командыgit config --get remote.origin.url
из клонированного репозитория. Вы можете использовать подстановки , чтобы ссылаться на это значение с файлами конфигурации пакета, как${bundle.git.origin_url}
. -
bundle.git.branch
, представляющий текущую ветвь в репозитории. Это то же значение, что и при выполнении командыgit branch --show-current
из клонированного репозитория. Вы можете использовать подстановки , чтобы ссылаться на это значение с файлами конфигурации пакета, как${bundle.git.branch}
.
Чтобы получить или переопределить параметры Git, пакет должен находиться в каталоге, связанном с репозиторием Git, например локальный каталог, инициализированный с помощью git clone
команды. Если каталог не связан с репозиторием Git, эти параметры Git пусты.
При необходимости, вы можете переопределить настройки origin_url
и branch
в сопоставлении верхнего уровня git
следующим образом:
bundle:
git:
origin_url: <some-non-default-origin-url>
branch: <some-non-current-branch-name>
databricks_cli_version
Сопоставление bundle
может содержать databricks_cli_version
сопоставление, которое ограничивает версию интерфейса командной строки Databricks, необходимую для пакета. Это может предотвратить проблемы, вызванные использованием сопоставлений, которые не поддерживаются в определенной версии интерфейса командной строки Databricks.
Версия интерфейса командной строки Databricks соответствует семантическому версионированию, а 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
run_as
Параметр run_as
указывает, какой user_name
или service_principal_name
следует использовать для запуска пакета. Он предоставляет возможность отделять учетные данные, используемые для развертывания задания пакета или конвейерного задания, от учетных данных, используемых для выполнения задания или конвейерного задания.
См. Задайте идентификатор выполнения для рабочего процесса пакетов ресурсов Databricks.
включать
Массив include
задает список глобов пути, содержащих файлы конфигурации для включения в пакет. Эти глобы пути относятся к расположению файла конфигурации пакета, в котором указаны глобы пути.
Интерфейс командной строки Databricks не включает файлы конфигурации по умолчанию в пакете. Массив include
необходимо использовать для указания всех файлов конфигурации, которые должны быть включены в пакет, кроме самого файла databricks.yml
.
Этот include
массив может отображаться только как сопоставление верхнего уровня.
В следующем примере конфигурации содержится три файла конфигурации. Эти файлы находятся в той же папке, что и файл конфигурации пакета:
include:
- 'bundle.artifacts.yml'
- 'bundle.resources.yml'
- 'bundle.targets.yml'
В следующем примере конфигурации содержатся все файлы с именами файлов, начинающимися bundle
и заканчивающимися .yml
. Эти файлы находятся в той же папке, что и файл конфигурации пакета:
include:
- 'bundle*.yml'
Сценарии
Этот scripts
параметр задает сценарии, которые можно запускать с помощью bundle run
. Каждый именованный скрипт в сопоставлении scripts
содержит содержимое с командами. Рассмотрим пример.
scripts:
my_script:
content: uv run pytest -m ${bundle.target}
Дополнительные сведения см. в разделе "Выполнение скриптов".
синхронизация
Сопоставление sync
позволяет конфигурировать файлы, входящие в состав развертываний пакета.
включить и исключить
Сопоставления include
и exclude
в сопоставлении sync
указывают список файлов или папок для включения или исключения из развертываний пакетов в зависимости от следующих правил:
- На основе любого списка глобов файлов и путей в файле в
.gitignore
корневом каталоге пакета сопоставление может содержать список глобов файлов, глобов пути или обоих, относительно корневогоinclude
каталога пакета, чтобы явно включить. - На основе любого списка шаблонов файлов и путей в файле, находящемся в
.gitignore
корневом каталоге пакета, вместе со списком шаблонов файлов и путей вinclude
сопоставлении, вexclude
сопоставлении может содержаться список шаблонов файлов, путей или того и другого относительно корневого каталога пакета, для явного исключения.
Все пути к указанным файлам и папкам относятся к расположению файла конфигурации пакета, в котором они указаны.
Синтаксис шаблонов 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
, указывающее пути для локальной синхронизации с рабочей областью. Сопоставление paths
позволяет использовать общие файлы между пакетами, а также может применяться для синхронизации файлов, расположенных вне корневого каталога пакета. (Корневой каталог пакета — это расположение файла databricks.yml.) Это особенно полезно, если у вас есть один репозиторий, в котором размещено несколько пакетов и требуется совместно использовать библиотеки, файлы кода или конфигурацию.
Указанные пути должны быть относительными к файлам и каталогам, привязанным к папке, в которой paths
задано сопоставление. Если одно или несколько значений пути поднимается по каталогу до предка корня пакета, то корневой путь динамически определяется, чтобы структура папок оставалась нетронутой. Например, если корневая папка пакета называется my_bundle
, эта конфигурация databricks.yml
синхронизирует common
папку, расположенную над корнем пакета, и сам корневой каталог пакета:
sync:
paths:
- ../common
- .
Развертывание этого пакета приводит к следующей структуре папок в рабочей области:
common/
common_file.txt
my_bundle/
databricks.yml
src/
...
Артефакты
Сопоставление верхнего уровня artifacts
указывает один или несколько артефактов, которые автоматически создаются во время развертывания пакета и могут использоваться позже при выполнении пакета. Каждый дочерний артефакт поддерживает следующие сопоставления:
-
type
требуется для сборок колес Python. Чтобы создать файл колесика Python перед развертыванием, задайте для этого значениеwhl
. Чтобы создать другие артефакты, этот параметр не требуется указывать. -
path
— это необязательный путь. Пути относятся к расположению конфигурационного файла пакета. Для сборки колес Python это путь к файлуsetup.py
колеса Python. Еслиpath
не задан, то Databricks CLI пытается найти файл Python wheelsetup.py
в корневом каталоге пакета. -
files
является необязательным сопоставлением, которое включает в себя дочернее сопоставлениеsource
, которое можно использовать для указания созданных артефактов. Пути относятся к расположению конфигурационного файла пакета. -
build
— это необязательный набор команд сборки, отличных от по умолчанию, которые необходимо выполнить локально перед развертыванием. Для сборок колес Python интерфейс командной строки Databricks предполагает, что он может найти локальную установку пакета Pythonwheel
для выполнения сборок, и она выполняет командуpython setup.py bdist_wheel
по умолчанию во время каждого развертывания пакета. Чтобы указать несколько команд сборки, разделите каждую команду символами двойного амперсанда (&&
). -
dynamic_version
позволяет пакетам обновлять версию wheel-файла в зависимости от временной метки wheel-файла. Затем новый код можно развернуть без необходимости обновлять версию вsetup.py
илиpyproject.toml
. Этот параметр действителен только в том случае, еслиtype
задано значениеwhl
.
В следующем примере конфигурация создает колесо с помощью поэзии. Полный пример пакета, который использует artifacts
для сборки колеса, см. раздел Создание файла колеса Python с помощью наборов ресурсов Databricks.
artifacts:
default:
type: whl
build: poetry build
path: .
На примере конфигурации, которая создает JAR-файл и отправляет его в Unity Catalog, см. пакет, который загружает JAR-файл в Unity Catalog.
Совет
Вы можете определить, объединить и переопределить параметры артефактов в пакетах, как описано в разделе "Определение параметров артефакта" в пакетах ресурсов Databricks.
Переменные
Файл параметров пакетов может содержать одно сопоставление верхнего уровня variables
, в котором определены пользовательские переменные. Для каждой переменной задайте необязательное описание, значение по умолчанию, укажите, является ли переменная сложным типом, или настройку поиска для получения значения идентификатора, используя следующий формат:
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.
рабочая область
Файл конфигурации пакета может содержать только одно сопоставление верхнего уровня workspace
, чтобы указать любые параметры рабочей области Azure Databricks, отличные от параметров по умолчанию.
Внимание
Допустимые пути рабочей области Databricks начинаются с /Workspace
, а для артефактов также поддерживаются пути, начинающиеся с /Volumes
. Пользовательские пути рабочей области автоматически добавляются в начале с /Workspace
, поэтому, если вы используете замену пути рабочей области в своем пользовательском пути, например, ${workspace.file_path}
, вам не нужно добавлять /Workspace
к пути.
корневой путь
Это сопоставление workspace
может содержать сопоставление root_path
для указания корневого пути, отличного от стандартного, который используется в рабочей области как для развертывания, так и для запуска рабочих процессов, например:
workspace:
root_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}
По умолчанию интерфейс командной строки Databricks использует стандартный путь root_path
, который включает /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/${bundle.target}
.
путь_к_артефакту
Это workspace
сопоставление также может содержать artifact_path
сопоставление, чтобы указать нестандартный путь артефакта для использования в рабочем пространстве как для развертываний, так и для запусков рабочих процессов, например:
workspace:
artifact_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/artifacts
По умолчанию интерфейс командной строки Databricks использует стандартный путь artifact_path
, который включает ${workspace.root}/artifacts
.
Примечание.
Сопоставление artifact_path
не поддерживает пути, относящиеся к файловой системе Databricks (DBFS).
путь_к_файлу
Это workspace
сопоставление также может содержать file_path
сопоставление, чтобы указать путь к файлу, не являющийся значением по умолчанию, который используется в рабочей области для развертываний и выполнения рабочих процессов, например:
workspace:
file_path: /Workspace/Users/${workspace.current_user.userName}/.bundle/${bundle.name}/my-envs/${bundle.target}/files
По умолчанию интерфейс командной строки Databricks использует стандартный путь file_path
, который включает ${workspace.root}/files
.
путь_состояния
Сопоставление state_path
по умолчанию указывает путь ${workspace.root}/state
в вашей рабочей области для хранения сведений о состоянии Terraform, связанных с развертываниями.
Другие сопоставления рабочих областей
Сопоставление workspace
также может содержать следующие необязательные сопоставления, чтобы указать механизм проверки подлинности Azure Databricks для использования. Если они не указаны в этом workspace
сопоставлении, они должны быть указаны в workspace
сопоставлении как дочерний объект одного или нескольких целевых объектов в сопоставлении целевых объектов верхнего уровня.
Внимание
Для проверки подлинности Azure Databricks необходимо жестко закодировать значения для следующих workspace
сопоставлений. Например, нельзя указать пользовательские переменные для значений этих сопоставлений с помощью синтаксиса ${var.*}
.
Сопоставление
profile
(или опции--profile
и-p
при выполнении команд validate, deploy, run и destroy с помощью CLI Databricks) указывает имя профиля конфигурации для использования с этой рабочей областью для аутентификации в Azure Databricks. Этот профиль конфигурации сопоставляется с созданным при настройке интерфейса командной строки Databricks.Примечание.
Databricks рекомендует использовать сопоставление
host
(или параметры--profile
или-p
при выполнении команд проверки, развертывания, запуска и уничтожения пакета с помощью интерфейса командной строки Databricks) вместо сопоставленияprofile
, так как это делает файлы конфигурации пакета более универсальными.host
Установка сопоставления указывает интерфейсу командной строки Databricks найти соответствующий профиль в файле.databrickscfg
, а затем использовать поля этого профиля для определения используемого типа проверки подлинности Databricks. Если в файлеhost
существует несколько профилей с соответствующим полем.databrickscfg
, необходимо использовать сопоставлениеprofile
(или параметры командной строки--profile
или-p
), чтобы указать Databricks CLI, какой профиль использовать. Пример см. в объявлении целевогоprod
объекта в примерах.
Сопоставление
host
указывает URL-адрес рабочей области Azure Databricks. См. URL-адрес рабочей области.Для проверки подлинности OAuth между компьютерами (M2M) используется сопоставление
client_id
. Кроме того, можно задать это значение в локальной переменнойDATABRICKS_CLIENT_ID
среды. Или вы можете создать профиль конфигурации со значениемclient_id
, а затем указать имя профиля с помощью сопоставленияprofile
(или, используя параметры--profile
или-p
, при выполнении команд проверки, развертывания, запуска и уничтожения с интерфейсом командной строки Databricks). См. статью "Разрешение на автоматический доступ к ресурсам Azure Databricks с помощью субъекта-службы и OAuth".Примечание.
Нельзя указать значение секрета OAuth Azure Databricks в файле конфигурации пакета. Вместо этого задайте переменную
DATABRICKS_CLIENT_SECRET
локальной среды. Кроме того, можно добавить значениеclient_secret
в профиль конфигурации, а затем указать имя профиля с помощью сопоставленияprofile
(или использовать параметры--profile
и-p
при выполнении команд проверки, развертывания, запуска и удаления с помощью интерфейса командной строки Databricks CLI).Для авторизации в Azure CLI используется сопоставление
azure_workspace_resource_id
. Кроме того, можно задать это значение в локальной переменнойDATABRICKS_AZURE_RESOURCE_ID
среды. Или вы можете создать профиль конфигурации со значениемazure_workspace_resource_id
, а затем указать имя профиля с помощью сопоставленияprofile
(или, используя параметры--profile
или-p
, при выполнении команд проверки, развертывания, запуска и уничтожения с интерфейсом командной строки Databricks). См. проверку подлинности 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
(или используя параметры--profile
или-p
при выполнении команд проверки, развертывания, запуска и уничтожения через интерфейс командной строки Databricks). См . сведения о проверке подлинности субъекта-службы MS Entra.Примечание.
Нельзя указать значение секрета клиента Azure в файле конфигурации пакета. Вместо этого задайте переменную
ARM_CLIENT_SECRET
локальной среды. Кроме того, можно добавить значениеazure_client_secret
в профиль конфигурации, а затем указать имя профиля с помощью сопоставленияprofile
(или использовать параметры--profile
и-p
при выполнении команд проверки, развертывания, запуска и удаления с помощью интерфейса командной строки Databricks CLI).Для проверки подлинности управляемых удостоверений 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
(или используя параметры--profile
или-p
при выполнении команд проверки, развертывания, запуска и уничтожения через интерфейс командной строки Databricks). См. проверку подлинности управляемых удостоверений Azure.Сопоставление
azure_environment
указывает тип среды Azure (например, Public, UsGov, Китай и Германия) для определенного набора конечных точек API. Значение по умолчанию —PUBLIC
. Кроме того, можно задать это значение в локальной переменнойARM_ENVIRONMENT
среды. Кроме того, можно добавить значениеazure_environment
в профиль конфигурации, а затем указать имя профиля с помощью сопоставленияprofile
(или использовать параметры--profile
и-p
при выполнении команд проверки, развертывания, запуска и удаления с помощью интерфейса командной строки Databricks CLI).Сопоставление
azure_login_app_id
не работает и зарезервировано для внутреннего использования.
- Сопоставление
auth_type
указывает используемый тип проверки подлинности Azure Databricks, особенно в тех случаях, когда интерфейс командной строки Databricks вызывает непредвиденный тип проверки подлинности. Ознакомьтесь с разрешением доступа к ресурсам Azure Databricks.
Разрешения
Сопоставление верхнего уровня permissions
указывает один или несколько уровней разрешений для применения ко всем ресурсам, определенным в пакете. Если вы хотите применить разрешения к конкретному ресурсу, см. статью "Определение разрешений для определенного ресурса".
Допустимые уровни разрешений верхнего уровня: CAN_VIEW
и CAN_MANAGE
CAN_RUN
.
В следующем примере в файле конфигурации пакета определяются уровни разрешений для пользователя, группы и субъекта-службы, которые применяются ко всем заданиям, конвейерам, экспериментам и моделям, определенным в resources
пакете:
permissions:
- level: CAN_VIEW
group_name: test-group
- level: CAN_MANAGE
user_name: [email protected]
- level: CAN_RUN
service_principal_name: 123456-abcdef
ресурсы
Сопоставление resources
указывает сведения о ресурсах Azure Databricks, используемых пакетом.
Это отображение
Полезные данные запроса на создание операций описаны в справочнике по REST API Databricks, а команда databricks bundle schema
выводит все поддерживаемые схемы объектов. Кроме того, команда databricks bundle validate
возвращает предупреждения, если в файлах конфигурации пакета обнаружены неизвестные свойства ресурсов.
В следующем примере конфигурации определяется ресурс задания:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
existing_cluster_id: 1234-567890-abcde123
notebook_task:
notebook_path: ./hello.py
Для получения дополнительной информации о ресурсах, поддерживаемых в пакетах, а также о распространённых конфигурациях и примерах, см. ресурсы комплектов Databricks и примеры конфигурации пакетов.
Цели
Сопоставление targets
указывает один или несколько контекстов, в которых выполняется рабочий процесс Azure Databricks. Каждый целевой объект — это уникальная коллекция артефактов, параметров рабочей области Azure Databricks и сведений о задании или конвейере Azure Databricks.
Сопоставление targets
состоит из одного или нескольких целевых сопоставлений, которые должны иметь уникальное программное (или логическое) имя.
Это targets
сопоставление является необязательным, но настоятельно рекомендуется. Если он указан, он может отображаться только как сопоставление верхнего уровня.
Параметры в рабочей области верхнего уровня, артефактах и сопоставлениях ресурсов используются, если они не указаны в targets
сопоставлении, но все конфликтующие параметры переопределяются параметрами в целевом объекте.
Целевой объект также может переопределить значения любых переменных верхнего уровня.
по умолчанию
Чтобы задать целевое значение по умолчанию для команд пакета, сопоставьте 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>
режим и предустановки
Чтобы упростить разработку и рекомендации по CI/CD, наборы активов Databricks предоставляют режимы развертывания для целевых объектов, которые устанавливают поведение по умолчанию для предварительных и рабочих рабочих процессов. Некоторые поведения также можно настроить. Дополнительные сведения см. в режимах развертывания пакета ресурсов Databricks.
Совет
Чтобы задать удостоверения запуска для пакетов, можно указать run_as
для каждого целевого объекта, как описано в разделе "Указание удостоверения запуска для рабочего процесса пакетов активов Databricks".
Чтобы указать, что целевой объект рассматривается как объект разработки, добавьте mode
набор сопоставлений development
. Чтобы указать, что цель обрабатывается как производственная, добавьте набор сопоставленийmode
production
. Например, целевой объект под названием prod
рассматривается как производственный целевой объект.
targets:
prod:
mode: production
Некоторые из поведения можно настроить с помощью presets
сопоставления. Список доступных предустановок см. в разделе "Пользовательские предустановки". В следующем примере показана настраиваемая производственная цель, которая добавляет префиксы и теги ко всем производственным ресурсам.
targets:
prod:
mode: production
presets:
name_prefix: 'production_' # prefix all resource names with production_
tags:
prod: true
Если установлены и mode
, и presets
, настройки переопределяют поведение режима по умолчанию. Параметры отдельных ресурсов переопределяют предустановки. Например, если для расписания задано UNPAUSED
, но предустановка trigger_pause_status
установлена на PAUSED
, приостановка расписания будет снята.