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


Конфигурация приложений Databricks

Внимание

Приложения Databricks доступны в общедоступной предварительной версии.

В этой статье описаны параметры, автоматически настроенные в среде Databricks Apps, и объясняется, как определить настраиваемую конфигурацию, необходимую для приложений.

Среда Databricks Apps задает несколько переменных среды, таких как URL-адрес рабочей области Azure Databricks под управлением приложения и значений, необходимых для проверки подлинности приложения. Однако иногда для приложений требуются дополнительные пользовательские переменные. Например, может потребоваться пользовательская команда для запуска приложения или параметров для подключения к хранилищу SQL. Для этих пользовательских параметров конфигурации используйте app.yaml файл.

Настройка приложений Databricks с app.yaml помощью файла

Примечание.

Файл конфигурации приложения может использовать .yaml или .yml расширение.

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

Параметрыapp.yaml
command

Тип: sequence

Необязательный набор аргументов для запуска приложения. Используйте этот параметр, если требуется пользовательская команда для запуска приложения. Значения по умолчанию:[python, app.py]

Команда не выполняется в оболочке, поэтому никакие значения, заданные в среде, не передаются в приложение. Если приложению требуется выполнить дополнительные параметры, используйте структуру env .

Эта настройка необязательна.
env

Тип: list

Ключ верхнего уровня для необязательного списка пар "ключ-значение", определяющих переменные среды для передачи в приложение. Это value может быть либо фактическое значение параметра, либо ссылка на место хранения значения. Допустимые элементы в списке:

- name: имя переменной среды.
— одно из следующих:
- value: значение переменной среды.
- valueFrom: для внешнего определенного значения имя источника, содержащего значение. Например, имя секрета или таблицы базы данных, содержащей значение.

Эта настройка необязательна.

Пример app.yaml для приложения Streamlit

В следующем примере app.yaml файла конфигурации выполняется приложение Streamlit, передавая идентификатор хранилища SQL и значение параметра STREAMLIT_GATHER_USAGE_STATS :

command: [
  "streamlit",
  "run",
  "app.py"
]
env:
  - name: "DATABRICKS_WAREHOUSE_ID"
    value: "quoz2bvjy8bl7skl"
  - name: "STREAMLIT_GATHER_USAGE_STATS"
    value: "false"

Пример app.yaml приложения Flask

Следующий пример app.yaml файла конфигурации запускает приложение Flask с сервером Gunicorn и задает переменную среды, содержащую путь к тому каталога Unity:

command:
  - gunicorn
  - app:app
  - -w
  - 4
env:
  - name: "VOLUME_URI"
    value: "/Volumes/catalog-name/schema-name/dir-name"

Ссылка на секрет Databricks

Чтобы ссылаться на секрет, настроенный в качестве зависимости ресурсов для приложения, задайте valueFrom: <dependency_name> в env разделе конфигурации app.yaml . Замените dependency_name значением ключа ресурса из конфигурации секретного ресурса. Дополнительные сведения о зависимости ресурсов Databricks Apps см. в Разделы справки интеграции приложения Databricks со службами Azure Databricks?. Дополнительные сведения об управлении секретами Databricks см. в статье "Управление секретами".

В следующем примере app.yaml ссылается секрет, настроенный в качестве зависимости ресурса:

command: [
  "python",
  "app.py"
]
env:
  - name: "SECRET_KEY"
    valueFrom: "secret-name"

Переменные среды Databricks Apps

Следующие переменные автоматически задаются в среде Databricks Apps и доступны для всех приложений. Если необходимо задать дополнительные переменные среды, добавьте их в файл app.yaml.

«Переменная» Description
DATABRICKS_APP_NAME Имя запущенного приложения.
DATABRICKS_WORKSPACE_ID Уникальный идентификатор рабочей области Databricks, к которой принадлежит приложение.
DATABRICKS_HOST URL-адрес рабочей области Databricks, к которой принадлежит приложение.
DATABRICKS_APP_PORT Сетевой порт приложения должен прослушивать.
DATABRICKS_CLIENT_ID Идентификатор клиента для субъекта-службы Databricks, назначенного приложению.
DATABRICKS_CLIENT_SECRET Секрет OAuth для субъекта-службы Databricks, назначенного приложению.

Переменные среды по умолчанию для Streamlit

Следующие переменные Streamlit автоматически настраиваются в среде Databricks Apps и доступны для приложений Databricks, использующих платформу Streamlit:

«Переменная» Description
STREAMLIT_SERVER_ADDRESS Адрес сервера для использования Streamlit. Это значение равно 0.0.0.0 и не должно быть переопределено.
STREAMLIT_SERVER_PORT Порт для использования Streamlit. Это значение имеет значение DATABRICKS_APP_PORT и не должно быть переопределено.
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION Так как обратный прокси-сервер Databricks Apps защищает от межсайтовых запросов forgery (XSRF), это значение имеет falseзначение .
STREAMLIT_SERVER_ENABLE_CORS Так как обратный прокси-сервер Databricks Apps защищает от общего доступа к ресурсам между источниками (CORS), это значение имеет значение false.
STREAMLIT_SERVER_HEADLESS Для этого задано true значение Streamlit, не открывая окно браузера при запуске.
STREAMLIT_BROWSER_GATHER_USAGE_STATS Для этого необходимо false предотвратить отправку статистики пользователей в Streamlit.