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


Определение переменных среды в приложении Databricks

Azure Databricks автоматически задает определенные переменные среды в среде выполнения приложения. Эти переменные предоставляют необходимые сведения о приложении и рабочей области и доступны для всех приложений Databricks по умолчанию. Список переменных по умолчанию см. в среде Databricks Apps.

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

Рассмотрим пример.

env:
  - name: LOG_LEVEL
    value: 'debug'

Только значения жесткого кода, если они статически, не учитывается и согласованы в разных средах. Примеры включают value: "true" переключатели функций, value: "us-west" для фиксированных регионов или value: "UTC" для часовых поясов по умолчанию.

Это важно

Чтобы обеспечить безопасность и переносимость приложения, никогда не ссылайтесь на секретные ключи или другие конфиденциальные значения непосредственно в конфигурации приложения. Например, избегайте внедрения значений секретов в value поле переменной среды или непосредственно в исходном коде. Вместо этого используйте valueFrom поле для безопасной ссылки на секреты и другие управляемые ресурсы, определенные в блоке ресурсов. Это гарантирует, что секреты извлекаются из Azure Databricks во время выполнения и никогда не предоставляются в виде открытого текста в файлах конфигурации.

Использование переменных среды для доступа к ресурсам

Если вы определяете ресурсы приложения, например хранилища SQL или секреты, обратитесь к этим ресурсам в env разделе app.yaml файла с помощью valueFrom поля. Это подключает переменные среды в приложении к ключам ресурсов, определенным в resources.

Пример app.yaml фрагмента кода:

env:
  - name: WAREHOUSE_ID
    valueFrom: sql_warehouse

  - name: SECRET_KEY
    valueFrom: secret

Затем в коде приложения получите к ним доступ как к переменным среды.

Python

import os

warehouse_id = os.getenv("WAREHOUSE_ID")
secret_value = os.getenv("SECRET_KEY")

JavaScript

const warehouseId = process.env.WAREHOUSE_ID;
const secretValue = process.env.SECRET_KEY;

Ссылка valueFrom

В следующей таблице показано значение, разрешающееся valueFrom для каждого типа ресурса:

Тип ресурса Разрешенное значение Пример
Приложение Databricks Имя приложения my-app
Пространство Genie Идентификатор пространства 01ef1fa2b3c45678
База данных автомасштабирования Lakebase Путь к конечной точке projects/my-project/branches/main/endpoints/ep123
Оперативная база данных Lakebase Хост postgres-host.example.com
Задание Lakeflow Идентификатор задания 123456789
Эксперимент MLflow Идентификатор эксперимента 456789012
Конечная точка обслуживания модели Имя конечной точки my-serving-endpoint
Секрет Расшифрованное значение секрета (значение секрета)
Хранилище SQL Идентификатор хранилища a1b2c3d4e5f67890
Подключение каталога Unity Имя подключения my_connection
Таблица каталога Unity Полное название таблицы catalog.schema.table
Объем каталога Unity Путь тома /Volumes/catalog/schema/volume
Определяемая пользователем функция Полное имя функции catalog.schema.my_function
Индекс векторного поиска Полное имя индекса catalog.schema.my_index

Дальнейшие шаги