Поделиться через


Режимы развертывания пакета ресурсов 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. См. раздел "Использование режима разработки для запуска обновлений конвейера".
  • Включает использование --compute-id <cluster-id> в связанных вызовах bundle deploy команды, которая переопределяет все и все существующие определения кластера, которые уже указаны в файле конфигурации связанного пакета. Вместо использования --compute-id <cluster-id> в связанных вызовах bundle deploy команды можно задать compute_id сопоставление здесь или в качестве дочернего bundle сопоставления для используемого идентификатора кластера.
  • Приостанавливает все расписания и триггеры на развернутых ресурсах, таких как задания или мониторы качества. Распакуйте расписания и триггеры для отдельного задания, задав значение schedule.pause_status UNPAUSED.
  • Включает одновременные запуски во всех развернутых заданиях для ускорения итерации. Отключите одновременные запуски для отдельного задания, установив для 1параметра max_concurrent_runs значение .
  • Отключает блокировку развертывания для ускорения итерации. Эта блокировка предотвращает конфликты развертывания, которые вряд ли возникают в режиме разработки. Повторно включите блокировку, задав значение bundle.deployment.lock.enabled true.

Рабочий режим

Чтобы развернуть пакет в рабочем режиме, необходимо сначала добавить 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_pathсопоставления или root_pathstate_path сопоставления не переопределяются конкретному пользователю.
    • Проверяет, указаны ли run_as permissions и сопоставления, чтобы указать, какие удостоверения имеют определенные разрешения для развертываний.
  • В отличие от предыдущего поведения для задания mode сопоставления development, параметр mode сопоставления production не позволяет переопределять существующие определения кластера, указанные в файле конфигурации связанного пакета, например с помощью --compute-id <cluster-id> параметра или compute_id сопоставления.