Разработка приложений Databricks
Внимание
Приложения Databricks доступны в общедоступной предварительной версии.
Примечание.
Чтобы развернуть и запустить приложения в рабочей области Databricks, необходимо убедиться, что брандмауэр не блокирует домен *.databricksapps.com
.
В этой статье содержатся сведения о создании приложений и ИИ с помощью Databricks Apps, включая создание и изменение приложений в пользовательском интерфейсе, использование функций платформы Databricks, таких как хранилища SQL, секреты и задания Databricks, рекомендации по разработке приложений и важные сведения для разработки приложений с помощью поддерживаемых платформ.
Разделы справки создать приложение в пользовательском интерфейсе Databricks Apps?
На боковой панели щелкните
Новый и выберите Приложение в меню.
Вы можете начать с полного, предварительно созданного примера приложения или использовать исходный код и артефакты.
- Чтобы начать с примера приложения, выберите шаблон, перейдите на вкладку для предпочтительной платформы и выберите из списка приложений.
- Чтобы создать приложение с помощью вашего кода, выберите Настраиваемый.
Нажмите кнопку Далее.
В поле "Имя приложения" введите имя приложения и при необходимости введите описание.
Примечание.
- Имя, назначенное приложению Databricks, невозможно изменить после создания приложения, и любой пользователь с доступом к рабочей области Azure Databricks может просмотреть имена и журнал развертывания всех приложений Databricks в рабочей области. Кроме того, имя приложения включается в записи, записанные в системные таблицы. Из-за этой видимости при именовании приложений Databricks не следует включать конфиденциальную информацию.
- Имя должно быть уникальным в рабочей области Azure Databricks, в котором размещено приложение, и должно содержать только строчные буквы, цифры и дефисы.
Если выбран параметр Custom, нажмите кнопку "Создать приложение". Если выбран шаблон, настройте необходимые ресурсы и нажмите кнопку "Создать и развернуть приложение". См. раздел "Назначение функций платформы Databricks" приложению Databricks.
Откроется страница сведений о приложении после нажатия кнопки "Создать и развернуть приложение " или "Создать приложение". Если вы выбрали шаблон, Databricks Apps создает приложение, а затем развертывает приложение, включая пример кода из шаблона и требуемую конфигурацию для приложения. На странице сведений для приложения показана следующая страница:
- Состояние создания и развертывания приложения.
- Действия, которые можно использовать для локальной разработки приложения, включая копирование артефактов приложения в локальную среду и синхронизацию локальных изменений обратно в рабочую область Azure Databricks.
Если вы выбрали custom, Databricks Apps создает приложение. Так как необходимо добавить код и артефакты для приложения, необходимо развернуть приложение как отдельный шаг. На странице сведений для приложения показана следующая страница:
- Состояние создания приложения.
- Действия, которые можно использовать для синхронизации кода и артефактов приложения из локальной среды разработки с рабочей областью Azure Databricks и развертывания приложения.
Сведения о настройке локальной среды разработки, создании или обновлении кода и конфигурации приложения локально, а также синхронизации и развертывании приложения в рабочей области Azure Databricks см. в статье Начало работы с Databricks Apps.
Если вы выбрали шаблон и хотите скопировать артефакты приложения из рабочей области в локальную среду разработки, можно использовать интерфейс командной строки Databricks:
databricks workspace export-dir <workspace-path> <target-path>
Замена:
-
<workspace-path>
с путем к каталогу файлов рабочей области, который содержит код приложения и артефакты. -
<target-path>
с путем в локальной среде, чтобы скопировать файлы в.
-
Назначение функций платформы Databricks приложению Databricks
Примечание.
Для использования Databricks SQL субъекты-службы требуют доступа к хранилищу SQL и любым таблицам, к которым обращаются запросы.
Чтобы использовать функции платформы Databricks, такие как Databricks SQL, Databricks Jobs, Мозаичная модель ИИ и секреты Databricks, добавьте эти функции в приложение в качестве ресурсов. Вы можете добавлять ресурсы при создании или изменении приложения.
В карточке Создание нового приложения или Редактирование приложения щелкните Дополнительные параметры>+ Добавить ресурс, и выберите тип ресурса.
В зависимости от типа ресурса заполните поля, необходимые для настройки ресурса, включая поле ключа ресурса. Этот ключ используется позже для ссылки на ресурс.
Нажмите кнопку Сохранить.
Добавьте запись для ресурса в
app.yaml
файл конфигурации с помощью ключа ресурса хранилища SQL. Так как это ссылается на источник значения параметра, а не фактическое значение, используйтеvalueFrom
вместоvalue
него.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
Чтобы ссылаться на ресурс в коде приложения, используйте значение поля (
name
в этом примере) для ссылки на настроенное значениеDATABRICKS_WAREHOUSE_ID
ключа.import os os.getenv('DATABRICKS_WAREHOUSE_ID')
Дополнительные примеры использования ресурсов с приложениями, включая хранилища SQL и конечные точки обслуживания моделей, см. в примерах шаблонов при создании приложения и рекомендации. Использование секретов для хранения конфиденциальной информации для приложения Databricks.
Просмотр сведений о приложении Databricks
Чтобы просмотреть страницу сведений для приложения Databricks, выполните следующие действия.
- Щелкните "
Вычисления" на боковой панели.
- Перейдите на вкладку "Приложения ".
- В столбце имени
щелкните имя приложения. - На вкладке "Обзор" отображаются сведения о приложении, включая его состояние, расположение развертывания и все связанные ресурсы.
- Чтобы получить доступ к журналу развертывания приложения, перейдите на вкладку "Развертывания ".
- Чтобы просмотреть журналы для приложения, перейдите на вкладку "Журналы ".
- Чтобы просмотреть среду выполнения для приложения, включая переменные среды и установленные пакеты, перейдите на вкладку "Среда ".
Настройка разрешений для приложения Databricks
Чтобы управлять разрешениями приложения, необходимо иметь CAN MANAGE
или IS OWNER
разрешение.
- На странице сведений о приложении щелкните "Разрешения".
- В Параметры разрешенийвыберите в раскрывающемся меню "Пользователь, группа или учетная запись службы..." и затем выберите пользователя, группу, учетную запись службы или всех пользователей рабочей области.
- Выберите разрешение в раскрывающемся меню разрешений.
- Нажмите кнопку "Добавить " и нажмите кнопку "Сохранить".
Сохранение состояния для приложения Databricks
Любое состояние, которое ваше приложение сохраняет в памяти, теряется при перезапуске. Если приложению требуется поддерживать состояние между перезапусками, сохраните состояние вне страны. Например, приложение может использовать Databricks SQL, файлы рабочей областиили тома каталога Unity для сохранения состояния.
Ведение журнала из приложения Databricks
Примечание.
Чтобы просмотреть журналы в пользовательском интерфейсе Databricks Apps или с URL-адресом приложения, приложение должно войти stdout
в систему и stderr
.
Чтобы просмотреть стандартные выходные данные и стандартную ошибку для приложения, на странице сведений для приложения щелкните вкладку "Журналы ". См. сведения о приложении Databricks.
Вы также можете просмотреть стандартные выходные и стандартные журналы ошибок по ссылке <appurl>/logz
. Например, если URL-адрес приложения имеется https://my-app-1234567890.my-instance.databricksapps.com
, вы можете просмотреть журналы https://my-app-1234567890.my-instance.databricksapps.com/logz
. Чтобы найти URL-адрес приложения, перейдите на страницу сведений о приложении.
Указание зависимостей библиотеки для приложения Databricks
Если приложению требуются библиотеки Python, отличные от автоматически установленных пакетов, установленных в развертывании, используйте requirements.txt
файл для определения этих библиотек. Если пакет в requirements.txt
файле дублирует один из автоматически установленных пакетов, версия в вашей requirements.txt
версии переопределяет автоматически установленный пакет.
Список пакетов и версий, установленных в процессе развертывания приложения, см. в разделе Установленные библиотеки Python.
Какие заголовки HTTP передаются в приложения Databricks?
Следующие X-Forwarded-*
заголовки передаются из обратного прокси-сервера Databricks Apps в приложения:
Верхний колонтитул | Description |
---|---|
X-Forwarded-Host |
Исходный узел или домен, запрошенный клиентом. |
X-Forwarded-Preferred-Username |
Имя пользователя, предоставленное idP. |
X-Forwarded-User |
Идентификатор пользователя, предоставленный idP. |
X-Forwarded-Email |
Сообщение электронной почты пользователя, предоставленное idP. |
X-Real-Ip |
IP-адрес клиента, от которого исходит оригинальный запрос клиента. |
X-Request-Id |
Идентификатор UUID запроса. |
Какие платформы поддерживают приложения Databricks?
Для разработки приложений можно использовать большинство платформ Python. Чтобы просмотреть примеры использования конкретных платформ, включая Dash, Gradio и Streamlit, выберите из библиотеки шаблонов приложений при создании нового приложения в пользовательском интерфейсе. См. Разделы справки создание приложения в пользовательском интерфейсе Databricks Apps?.
Специфичные для Streamlit переменные, установленные в среде выполнения Databricks Apps, см. в разделе Переменные среды по умолчанию для Streamlit.
Рекомендация. Использование секретов для хранения конфиденциальной информации для приложения Databricks
Databricks рекомендует использовать секреты для хранения конфиденциальных данных, таких как учетные данные проверки подлинности. Дополнительные сведения об использовании секретов см. в статье "Управление секретами".
Чтобы использовать секрет с приложением, выполните приведенные далее действия.
Настройте секрет в качестве ресурса приложения.
Добавьте запись для секрета в файле конфигурации приложения
app.yaml
.env: - name: "API_TOKEN" valueFrom: "api-token-value"
Чтобы ссылаться на секрет в коде приложения, используйте значение поля (
name
в этом примере) для ссылки на настроенное значениеAPI_TOKEN
ключа.
token = os.getenv('API_TOKEN')
Рекомендация. Использование функций Azure Databricks для обработки данных
Вычисления Databricks Apps предназначены для обслуживания пользовательского интерфейса. Чтобы ваши приложения могли эффективно поддерживать несколько пользователей, следует использовать функции Databricks для выполнения любой задачи, отличной от простой обработки данных. Например, используйте Databricks SQL для обработки запросов и хранения наборов данных, заданий Databricks для обработки данных или модели, используемой для запроса моделей ИИ.
Рекомендация. Следуйте рекомендациям по безопасному написанию кода
Databricks рекомендует использовать следующие безопасные методики написания кода при разработке приложений, включая параметризацию запросов, чтобы избежать атак внедрения SQL. См. API выполнения инструкций.
Важные рекомендации по реализации приложений Databricks
- Приложения Databricks отправляют
SIGKILL
сигнал через 15 секунд после тогоSIGTERM
, как приложения должны корректно завершить работу не более 15 секунд после полученияSIGTERM
сигнала. Если приложение не завершилось через 15 секунд,SIGKILL
сигнал отправляется для завершения процесса и всех дочерних процессов. - Так как Приложения Databricks выполняются как не привилегированный системный пользователь, они не могут выполнять операции, требующие выполнения в привилегированном контексте безопасности, например операции, требующие разрешения корневого пользователя.
- Запросы пересылаются из обратного прокси-сервера, поэтому приложения не должны зависеть от происхождения запросов. Среда Databricks Apps задает необходимые параметры конфигурации для поддерживаемых платформ.
- Поскольку фреймворк приложений Databricks управляет подключениями TLS, ваши приложения не должны выполнять никаких операций установки TLS-соединения или рукопожатия.
- Приложения должны быть реализованы для обработки запросов в формате HTTP/2 cleartext (H2C).
- Приложения Databricks должны размещать HTTP-серверы
0.0.0.0
и использовать номер порта, указанный в переменнойDATABRICKS_APP_PORT
среды. См . переменные среды.