Развертывание приложения Databricks

После создания и разработки приложения Azure Databricks разверните его, чтобы сделать его доступным в рабочей области Azure Databricks. Развертывание создает приложение, устанавливает зависимости и запускает его с помощью конфигурации, определенной в файлах проекта. Вы можете развертывать приложения с помощью пользовательского интерфейса Azure Databricks или интерфейса командной строки Databricks.

Замечание

Если вы создаете приложение из шаблона, Azure Databricks автоматически развертывает его при первом создании. Однако его можно повторно развернуть позже после внесения изменений. См. статью "Создание приложения Databricks" из шаблона.

Логика развертывания

Databricks Apps поддерживает развертывание приложений, использующих Python, Node.jsили сочетание обоих. Это позволяет использовать гибкие архитектуры, такие как интерфейс Node.js с серверной частью Python.

Во время развертывания процесс сборки проверяет наличие package.json файла в корневом каталоге приложения, чтобы определить, используется ли Node.js. При наличии он включает шаги сборки, специфичные для Node, а также шаги для Python. Логика развертывания соответствует следующему шаблону:

Если package.json присутствует:

  1. Установите зависимости Node.js. Если pnpm-lock.yaml присутствует, выполните pnpm install --frozen-lockfile; в противном случае выполните npm install. См. раздел "Определение Node.js зависимостей".
  2. Установите зависимости Python:
    • Если requirements.txt существует, выполните команду pip install -r requirements.txt
    • Если requirements.txt не существует и существуют оба pyproject.toml и uv.lock, выполните uv sync для установки зависимостей.
  3. Запустите скрипт build, если он определен в package.json (npm run build или pnpm run build).
  4. Выполните команду, указанную в app.yaml. Для приложений npm, если команда не указана, Azure Databricks запускает npm run start. pnpm приложения должны указать команду в app.yaml.

Замечание

Для приложений npm, если в app.yaml не указана команда, Azure Databricks выполняет npm run start, даже если приложение содержит код Python. Чтобы запустить оба процесса Python и Node.js, определите пользовательский скрипт start, использующий средство, например concurrently для запуска обоих. Например: concurrently "npm run start:node" "python my_app.py".

Если package.json нет:

  1. Установите зависимости Python:
    • Если requirements.txt существует, выполните команду pip install -r requirements.txt
    • Если requirements.txt не существует и существуют оба pyproject.toml и uv.lock, выполните uv sync для установки зависимостей.
  2. Выполните команду, указанную в app.yaml, или python <my-app>.py если команда не указана.

Подготовка к развертыванию

Перед развертыванием приложения убедитесь, что проект включает необходимые компоненты:

Кроме того, убедитесь, что служебный принципал приложения имеет доступ к папке с исходным кодом.

Выбор источника развертывания

Вы можете развернуть приложения Databricks из следующих источников:

  • Папка рабочей области — отправка файлов приложения в папку рабочей области и развертывание из нее. Это стандартный метод развертывания. См. статью "Развертывание из папки рабочей области".
  • Репозиторий Git . Настройка репозитория Git для приложения и развертывание непосредственно без отправки файлов в рабочую область. Приложение читает код из настроенного Git-референса (ветвь, тег или коммит) при каждом развертывании. См. статью "Развертывание из репозитория Git".

Вы можете переключаться между рабочей областью и источниками Git для одного приложения в любое время. См. статью об обновлении или повторном развертывании приложения.

Развертывание приложения

В следующих разделах описывается развертывание из папки рабочей области или непосредственно из репозитория Git.

Развертывание из папки рабочей области

Пользовательский интерфейс Databricks

Чтобы развернуть приложение из пользовательского интерфейса Azure Databricks, выполните следующие действия.

  1. Отправьте файлы приложения в рабочую область Azure Databricks. Инструкции см. в разделе "Импорт файла".
  2. В рабочей области Databricks щелкните значок приложения. Переключатель приложений и выберите Databricks Apps.
  3. Выберите приложение в столбце "Имя ".
  4. Щелкните «Развернуть» и выберите папку в рабочей области, в которую вы загрузили файлы приложения.
  5. Нажмите кнопку "Выбрать", а затем "Развернуть".

Databricks CLI (интерфейс командной строки)

Чтобы развернуть приложение с помощью интерфейса командной строки, выполните следующие действия.

  1. Откройте терминал и перейдите в каталог, содержащий файлы приложения.

  2. Отправьте файлы приложения в рабочую область Azure Databricks с помощью команды sync. Замените путь расположением рабочей области, в котором нужно отправить файлы.

    databricks sync --watch . /Workspace/Users/my-email@org.com/my-app
    

    Флаг --watch сохраняет процесс синхронизации и автоматически отправляет изменения при локальном изменении файлов. Чтобы исключить определенные файлы или каталоги из синхронизации, добавьте их .gitignore в файл в локальном каталоге приложений. Распространенные файлы, которые следует исключитьnode_modules/: , .env__pycache__/.DS_Storeи любые большие файлы данных или артефакты сборки.

  3. Проверьте отправку, просмотрев файлы в рабочей области. В переключателе приложений значок приложения.>Analytics and AI, затем нажмите значок рабочей областиРабочая область и перейдите в каталог, который вы создали для своего приложения.

  4. Разверните приложение, выполнив следующую команду. Замените имя приложения и путь к исходному коду значениями.

    databricks apps deploy my-app-name \
       --source-code-path /Workspace/Users/my-email@org.com/my-app
    

    Интерфейс командной строки отображает ход развертывания и подтверждает выполнение приложения.

Развертывание из репозитория Git

Чтобы развернуть приложение из репозитория Git, добавьте репозиторий на уровне приложения, а затем укажите ссылку на Git при его развертывании. Репозиторий Git должен содержать файлы приложения, включая app.yaml, зависимости и точку входа. Поддерживаются все основные поставщики Git, включая GitHub, GitLab и Bitbucket. Вы также можете развертывать приложения, поддерживаемые Git, с помощью пользовательского интерфейса, интерфейса командной строки, API или декларативного пакета автоматизации.

Пользовательский интерфейс Databricks

Чтобы настроить и развернуть приложение из Git, выполните приведенные ниже действия.

  1. Отправьте файлы приложения в репозиторий Git.
  2. В рабочей области Databricks щелкните значок приложения. Переключатель приложений и выберите Databricks Apps.
  3. Выберите существующее приложение для редактирования или нажмите кнопку "Создать приложение " и создайте пользовательское приложение. См. статью "Создание пользовательского приложения Databricks".
  4. На шаге настройки Git введите URL-адрес репозитория Git (например, https://github.com/org/repo) и выберите поставщика Git.
  5. Для нового приложения введите ссылку Git (ветвь, тег или коммит). Для репозиториев GitHub или Azure DevOps, если выбрана ветвь, при необходимости включите автоматическое развертывание при push-событиях. См. статью "Включить автоматическое развертывание Git".
  6. Нажмите кнопку "Создать приложение " или " Сохранить ", чтобы вернуться на страницу обзора приложения.
  7. Для частных репозиториев сервисный принципал приложения должен иметь настроенные учетные данные для Git. На странице обзора приложения нажмите кнопку "Настройка учетных данных Git". Чтобы добавить учетные данные Git, необходимо иметь разрешения CAN MANAGE на приложение. Общедоступные репозитории не требуют учетных данных Git. Инструкции по каждому поставщику см. в разделе "Подключение поставщика Git к Databricks".

Затем разверните приложение:

  1. На странице обзора приложения нажмите кнопку "Развернуть".
  2. Выберите из Git.
  3. Для ссылки на Git введите имя ветки, тег или хэш SHA (например, main, v1.0.0, или хэш коммита).
  4. Для типа ссылки укажите, к какому типу относится ссылка, например ветвь, тег или коммит.
  5. (Необязательно) Для пути к исходному коду введите путь к определенному каталогу в репозитории. Приложение обрабатывает этот каталог как каталог верхнего уровня и не может получить доступ к файлам за ее пределами. Если путь не указан, Databricks использует корневой каталог репозитория.
  6. (Необязательно) Чтобы автоматически выполнять развертывание при каждом коммите в ветку, включите Автоматическое развертывание при отправке изменений. Необходимо выбрать отслеживаемую ветвь. При необходимости можно включить путь к исходному коду , чтобы задать путь, отличный от корневого каталога репозитория. См. статью "Включить автоматическое развертывание Git".
  7. Нажмите кнопку "Развернуть".

Databricks CLI (интерфейс командной строки)

Чтобы развернуть приложение из Git с помощью интерфейса командной строки, выполните следующие действия.

  1. Отправьте файлы приложения в репозиторий Git.

  2. Настройте репозиторий Git в приложении при создании приложения или добавьте его в существующее приложение. Поддерживаемые поставщики включают gitHub, gitHubEnterprise, gitLab, gitLabEnterpriseEdition, bitbucketCloud, bitbucketServer, azureDevOpsServices и awsCodeCommit.

    Чтобы создать приложение с настроенным репозиторием Git, используйте команду create :

    databricks apps create my-app \
       --json '{"git_repository": {"url": "https://github.com/org/repo", "provider": "gitHub"}}'
    

    Чтобы добавить или обновить репозиторий Git в существующем приложении, используйте команду create-update :

    databricks apps create-update my-app \
       --json '{"update_mask": "git_repository", "git_repository": {"url": "https://github.com/org/repo", "provider": "gitHub"}}'
    
  3. Для частных репозиториев настройте учетные данные Git для субъекта-службы приложения. Чтобы добавить учетные данные Git, необходимо иметь разрешения CAN MANAGE на приложение. Общедоступные репозитории не требуют учетных данных Git.

    Чтобы добавить учетные данные Git в сервисный принципал приложения с помощью командной строки (CLI), выполните следующую команду:

    databricks git-credentials create --json '{
      "git_provider": "gitHub",
      "git_email": "your-email@example.com",
      "personal_access_token": "YOUR_TOKEN",
      "principal_id": YOUR_SP_ID,
      "name": "GitHub credentials for SP"
    }'
    

    Замените YOUR_SP_ID идентификатором главного объекта службы приложения. Инструкции по получению личного токена доступа для каждого поставщика см. в разделе "Подключение поставщика Git к Databricks".

  4. Разверните приложение, указав ссылку на Git. Можно указать branch, tagили commit (они являются взаимоисключающими). При необходимости, добавьте source_code_path для развертывания из подкаталога в репозитории.

    databricks apps deploy my-app \
       --json '{"git_source": {"branch": "main"}}'
    

    Чтобы развернуть определенный тег или коммит, выполните указанные действия.

    databricks apps deploy my-app \
       --json '{"git_source": {"tag": "v1.0.0"}}'
    
    databricks apps deploy my-app \
       --json '{"git_source": {"commit": "abc123def456"}}'
    

    Чтобы развернуть из подкаталога в репозитории, выполните указанные ниже действия.

    databricks apps deploy my-app \
       --json '{"git_source": {"branch": "main", "source_code_path": "apps/my-app"}}'
    

    Интерфейс командной строки отображает ход развертывания и подтверждает выполнение приложения.

Для ссылок на ветвь или тег Azure Databricks развертывает последний коммит из этой ветви или этого тега. Для ссылок SHA коммита Azure Databricks всегда развертывает этот конкретный коммит. Если учетные данные Git субъекта-службы недействительны или истекли, развертывание не удается.

Замечание

Приложения, созданные до того, как развертывание Git стало общедоступным, не предоставляют создателям автоматических разрешений для субъекта-службы приложения CAN MANAGE. Если Вам нужно добавить учетные данные Git в более старое приложение, попросите администратора рабочей области предоставить Вам CAN MANAGE права на основной объект службы.

Учетные записи служб поддерживают один набор Git-учетных данных для каждого поставщика. Если вы обновляете учетные данные в другом месте, например через консоль учетной записи, он заменяет существующие учетные данные для этого поставщика.

Включение автоматических развертываний Git

Это важно

Автоматические развертывания из Git находятся в бета-версии. GitHub и Azure DevOps являются поддерживаемыми поставщиками во время бета-версии.

При включении автоматических развертываний Azure Databricks регистрирует вебхук (называемый служебным вебхуком в Azure DevOps) в вашем репозитории Git и повторно развертывает ваше приложение каждый раз, когда в настроенной ветви появляется новый коммит. Развернутые приложения синхронизируются с репозиторием без каких-либо действий вручную.

Для автоматического развертывания требуется следующая настройка, которая зависит от поставщика Git:

GitHub
  • Приложение Azure Databricks GitHub должно быть установлено в репозитории.
  • Репозиторий должен быть частным. Databricks не поддерживает автоматическое развертывание из общедоступных репозиториев.
  • Субъект-служба приложения должен иметь учетные данные Git с доступом к репозиторию. См. статью "Подключение поставщика Git к Databricks".

Количество вебхуков в репозитории ограничено 20 (250 для GitHub Enterprise).

Azure DevOps

Azure DevOps использует перехватчик службы (а не приложение Databricks) для активации развертываний. Azure Databricks создает веб-перехватчик службы, используя учетные данные Git пользователя, включившего автоматическое развертывание, поэтому:

  • Пользователь, включающий автоматическое развертывание, должен иметь учетные данные Git, настроенные для репозитория Azure DevOps. См. статью "Подключение поставщика Git к Databricks".
  • Эти учетные данные должны иметь разрешение Изменение подписок для перехватчиков служб в проекте Azure DevOps. Учетные данные, имеющие право только на просмотр проекта, не могут создать хук службы.

Чтобы включить автоматическое развертывание, настройте GitHub или Azure DevOps в качестве поставщика Git и включите автоматическое развертывание при push-событиях. Это можно сделать в любом из следующих мест:

Ссылка на Git должна быть именем ветви. Теги несовместимы с автоматическими развертываниями.

Замечание

Если у субъекта-службы приложения нет учетных данных Git для репозитория, Azure Databricks предложит добавить учетные данные при включении автоматических развертываний. Авторизация доступа обеспечивает автоматическое развертывание, но для запуска приложения необходимо повторно развернуть приложение вручную.

Чтобы отключить автоматическое развертывание, щелкните значок автоматического развертывания в существующем приложении и отключите автоматическое развертывание при push-событиях. Вы также можете перенастроить параметры в параметрах приложения.

Обеспечение развертываний только через Git

Администраторы рабочей области могут требовать, чтобы все приложения в рабочей области развертывались из репозиториев Git. Перейдите в Параметры>Разработка>Приложения и включите Разрешать развертывание приложений только из Git. Этот параметр отключен по умолчанию.

При применении развертываний Git:

  • Перед созданием приложения пользователи должны настроить репозиторий Git.
  • Пользователи могут развертывать только из Git, а не из папок рабочей области.
  • Databricks отключает шаблоны приложений в рабочей области.
  • Пользователи не могут удалить репозиторий Git из приложений с одним из них.
  • Существующие приложения продолжают работать, но пользователи не могут развертывать или запускать их снова, если приложение не имеет репозитория Git.

Поведение после развертывания

После завершения развертывания Azure Databricks запускает приложение, исходя из определенного command в файле app.yaml, или по умолчанию запускает python app.py. На странице обзора приложения отображается текущее состояние и предоставляется доступ к журналам, журналам развертывания и сведениям о среде.

Просмотр страницы обзора приложения после развертывания приложения

Чтобы просмотреть выходные данные развернутого приложения, щелкните ссылку приложения.

Перейдите на вкладку "Журналы" для отладки и мониторинга среды выполнения. См. статью "Ведение журнала и мониторинг для приложений Databricks".

Обновление или повторное развертывание приложения

Повторно разверните приложение после внесения изменений в исходный код или конфигурацию. Повторное развертывание применяет последние обновления без повторного восстановления приложения. Повторное развертывание можно выполнить из рабочей области или репозитория Git в любое время.

Повторное развертывание из папки в рабочей области

Чтобы переразвернуть папку рабочей области, выполните следующие действия.

  1. Обновите файлы приложения в папке рабочей области.
  2. Выберите приложение и нажмите кнопку "Развернуть".
  3. Если путь к исходному коду изменился или вы переключаетесь с источника Git, щелкните стрелку рядом с Развернуть и выберите Развернуть с использованием другого источника.

Повторное развертывание из репозитория Git

Для повторного развертывания из репозитория Git выполните следующие действия.

  1. Отправьте изменения в репозиторий Git.
  2. В рабочей области Azure Databricks выберите приложение и щелкните Deploy. Если ссылка на Git изменилась или вы переключаетесь с источника рабочей области, щелкните стрелку рядом с развертывание и выберите Развернуть с использованием другого источника.

Чтобы обновить репозиторий Git с помощью интерфейса командной строки или API, используйте команду create-update . Удаление репозитория Git из приложения требует развертывания из рабочей области.

Это важно

Изменение репозитория Git или переключение между источниками развертывания (Git и рабочей средой) удаляет все учетные данные Git для основной службы приложения. Изменение только ссылки на Git не удаляет учетные данные. Перед развертыванием из Git необходимо перенастроить учетные данные.

Устранение неполадок с развертыванием

Если приложение не удается развернуть или не выполняется должным образом, попробуйте выполнить следующие действия по устранению неполадок:

  • Проверьте журналы для сообщений об ошибках или выходных данных среды выполнения.
  • Проверьте app.yaml синтаксис и параметры.
  • Убедитесь, что секреты и переменные среды в env разделе обрабатываются правильно.
  • Убедитесь, что все необходимые зависимости включены или установлены.
  • Если в рабочей области используются Приватный канал или ограниченные политики сети исходящего трафика, убедитесь, что необходимые домены разрешены. Отсутствующие записи списка разрешений на исходящий трафик являются распространенными причинами сбоев развертывания в средах Приватный канал. Смотрите развертывание приложений в средах Приватный канал.

Для развертываний репозитория Git:

  • Для частных репозиториев убедитесь, что служебный принципал приложения имеет настроенные учетные данные Git.
  • Убедитесь, что URL-адрес репозитория Git является правильным, а Git-ссылка (ветка, тег или коммит) существует в репозитории.
  • Если администратор рабочей области вводит в действие развертывания только через Git, вы не сможете развернуть или запустить приложение, если у него еще не настроен репозиторий Git.
  • При развертывании из CLI (интерфейса командной строки), API или декларативных пакетов автоматизации сначала создайте приложение, а затем добавьте Git-учетные данные в основной служебный объект приложения.

Дополнительные ресурсы