Режимы развертывания пакета ресурсов Databricks
В этой статье описывается синтаксис режимов развертывания пакета ресурсов Databricks. Пакеты обеспечивают программное управление рабочими процессами Azure Databricks. См. сведения о пакетах ресурсов Databricks?
В рабочих процессах CI/CD разработчики обычно кодируют, тестируют, развертывают и запускают решения на различных этапах или в режимах. Например, самый простой набор режимов включает режим разработки для предварительной проверки, а затем режим производственный для проверенных результатов. Наборы ресурсов Databricks предоставляют необязательную коллекцию поведения по умолчанию, соответствующую каждому из этих режимов. Чтобы использовать эти поведения для конкретного объекта, задайте mode
или настройте presets
для цели в конфигурационной карте targets
. Сведения о targets
сопоставлении целевых объектов конфигурации пакета см. в разделе "Сопоставление целевых объектов конфигурации пакета".
Режим разработки
Чтобы развернуть пакет в режиме разработки, сначала необходимо добавить сопоставление mode
и установить параметр development
для целевого назначения. Например, этот целевой объект рассматривается как целевой объект dev
разработки:
targets:
dev:
mode: development
Развертывание целевого объекта в режиме разработки, выполнив databricks bundle deploy -t <target-name>
команду, реализует следующие действия, которые можно настроить с помощью предустановок:
- Предварительно добавляет все ресурсы, которые не развертываются как файлы или записные книжки с префиксом
[dev ${workspace.current_user.short_name}]
и тегами каждого развернутого задания и конвейера с тегомdev
Azure Databricks. - Помечает все связанные развернутые конвейеры Delta Live Tables как
development: true
. - Включает использование
--compute-id <cluster-id>
в связанных вызовахbundle deploy
команды, которая переопределяет все и все существующие определения кластера, которые уже указаны в файле конфигурации связанного пакета. Вместо использования--compute-id <cluster-id>
в связанных вызовах командыbundle deploy
можно задать сопоставлениеcompute_id
здесь или в качестве дочернего сопоставленияbundle
с идентификатором используемого кластера. - Приостанавливает все расписания и триггеры на развернутых ресурсах, таких как задания или мониторы качества. Распакуйте расписания и триггеры для отдельного задания, задав значение
schedule.pause_status
UNPAUSED
. - Включает одновременные запуски во всех развернутых заданиях для ускорения итерации. Отключите одновременные запуски для отдельного задания, установив для
max_concurrent_runs
параметра1
значение . - Отключает блокировку развертывания для ускорения итерации. Эта блокировка предотвращает конфликты развертывания, которые вряд ли возникают в режиме разработки. Повторно включите блокировку, задав значение
bundle.deployment.lock.enabled
true
.
Рабочий режим
Чтобы развернуть пакет в рабочем режиме, необходимо сначала добавить сопоставление mode
и установить значение production
в целевую цель. Например, этот целевой объект рассматривается как рабочий целевой объект prod
:
targets:
prod:
mode: production
Развертывание целевого объекта в рабочем режиме, выполнив databricks bundle deploy -t <target-name>
команду, реализует следующее поведение:
Проверяет, помечены ли все развернутые связанные конвейеры Delta Live Tables как
development: false
.Проверяет, равен ли текущая ветвь Git ветви Git, указанной в целевом объекте. Указание ветви Git в целевом объекте является необязательным и может выполняться с дополнительным
git
свойством следующим образом:git: branch: main
Эту проверку можно переопределить,
--force
указав при развертывании.Databricks рекомендует использовать субъекты-службы для рабочих развертываний. Это можно применить, установив
run_as
субъект-службу. См. статью "Управление субъектами-службами " и указание удостоверения выполнения для рабочего процесса пакетов ресурсов Databricks. Если субъекты-службы не используются, обратите внимание на следующее дополнительное поведение:- Проверяет, что
artifact_path
file_path
сопоставления илиroot_path
state_path
сопоставления не переопределяются конкретному пользователю. - Проверяет, указаны ли
run_as
permissions
и сопоставления, чтобы указать, какие удостоверения имеют определенные разрешения для развертываний.
- Проверяет, что
В отличие от предыдущего поведения для задания
mode
сопоставленияdevelopment
, параметрmode
сопоставленияproduction
не позволяет переопределять существующие определения кластера, указанные в файле конфигурации связанного пакета, например с помощью--compute-id <cluster-id>
параметра илиcompute_id
сопоставления.
Пользовательские предустановки
Пакеты ресурсов Databricks поддерживают настраиваемые предустановки для целевых объектов, что позволяет настраивать поведение целевых объектов. Доступные предустановки перечислены в следующей таблице:
Предварительно заданное значение | Description |
---|---|
name_prefix |
Строка префикса, которая будет предопределена именам ресурсов. |
pipelines_development |
Независимо от того, находится ли конвейер в режиме разработки. Допустимые значения: true или false . |
trigger_pause_status |
Состояние приостановки для применения ко всем триггерам и расписаниям. Допустимые значения: PAUSED или UNPAUSED . |
jobs_max_concurrent_runs |
Максимально допустимое количество одновременных запусков для заданий. |
tags |
Набор тегов key:value, которые применяются ко всем ресурсам, поддерживающим теги, включая задания и эксперименты. Пакеты ресурсов Databricks не поддерживают теги для schema ресурса. |
source_linked_deployment |
Зарезервировано для дальнейшего использования. Зависят ли создаваемые во время развертывания ресурсы от исходных файлов в рабочей области, а не от их копий. |
Примечание.
Если заданы оба mode
и presets
, предустановки переопределяют поведение режима по умолчанию, а параметры отдельных ресурсов переопределяют предустановки. Например, если для расписания задано значение UNPAUSED
, но для предустановки trigger_pause_status
задано значение PAUSED
, расписание будет возобновлено.
В следующем примере показана настраиваемая конфигурация предустановок для целевого объекта с именем dev
:
targets:
dev:
presets:
name_prefix: "testing_" # prefix all resource names with testing_
pipelines_development: true # set development to true for pipelines
trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
tags:
department: finance