Aller au contenu principal

Définir des variables d’environnement dans une application Databricks

Databricks définit automatiquement certaines variables d'environnement dans l'environnement d'exécution de l'application. Ces variables fournissent des information essentielles sur l'application et le Workspace, et sont accessibles à toutes les applications Databricks par default. Pour obtenir la liste des variables par default, consultez l'environnement Databricks Apps.

Si votre application nécessite des variables d'environnement supplémentaires, définissez-les dans le fichier de configuration app.yaml dans la section env. Chaque variable nécessite un nom et une valeur. Les variables peuvent utiliser une valeur codée en dur ou faire référence à une source de données externe.

Par exemple :

YAML
env:
- name: LOG_LEVEL
value: 'debug'

Ne coder en dur les valeurs que si elles sont statiques, non sensibles et cohérentes dans tous les environnements. Exemples : value: "true" pour les fonctionnalités basculantes, value: "us-west" pour les régions fixes ou value: "UTC" pour les fuseaux horaires par default.

important

Pour que votre application reste sécurisée et portable, ne référencez jamais les clés secrètes ou d'autres valeurs sensibles directement dans la configuration de votre application. Par exemple, évitez d'intégrer des valeurs secrètes dans le champ value d'une variable d'environnement ou directement dans votre code source. Utilisez plutôt le champ valueFrom pour référencer en toute sécurité les secrets et les autres Ressources gérées définis dans votre bloc de ressources. Ceci garantit que les secrets sont récupérés de Databricks lors de l'exécution et ne sont jamais exposés en texte brut dans vos fichiers de configuration.

Utiliser des variables d'environnement pour accéder aux ressources

Si vous définissez les ressources de l'application, telles que les SQL Warehouse ou les secrets, référencez ces ressources dans la section env de votre fichier app.yaml à l'aide du champ valueFrom. Ceci connecte les variables d'environnement de votre application aux clés de ressources définies dans resources.

Exemple d'extrait app.yaml :

YAML
env:
- name: WAREHOUSE_ID
valueFrom: sql_warehouse

- name: SECRET_KEY
valueFrom: secret

Ensuite, dans le code de votre application, accédez-y en tant que variables d'environnement :

Python
import os

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

référencevalueFrom

Le tableau suivant présente la valeur à laquelle valueFrom se résout pour chaque type de ressource :

Type de ressource

Valeur résolue

Exemple

Application Databricks

Nom de l'application

my-app

Genie Agent

ID de l’espace

01ef1fa2b3c45678

Base de données Autoscaling Lakebase.

Chemin d'Endpoint

projects/my-project/branches/main/endpoints/ep123

Base de données Lakebase provisionnée

Hôte

postgres-host.example.com

LakeFlow Job

ID de job

123456789

Expérimentation MLflow

ID d'expérience

456789012

Endpoint de service de modèle

Nom de l’Endpoint

my-serving-endpoint

Secret

Valeur secrète déchiffrée

(la valeur secrète)

SQL Warehouse

ID du Warehouse

a1b2c3d4e5f67890

Connexion Unity Catalog

Nom de la connexion

my_connection

Table Unity Catalog

Nom complet de la table

catalog.schema.table

Volume Unity Catalog

Chemin de volume

/Volumes/catalog/schema/volume

Fonction définie par l'utilisateur

Nom complet de la fonction

catalog.schema.my_function

Index de recherche IA

Nom complet de l'index

catalog.schema.my_index

Type de ressource

Valeur résolue

Exemple

Application Databricks

Nom de l'application

my-app

Genie Agent

ID de l’espace

01ef1fa2b3c45678

Base de données Autoscaling Lakebase.

Chemin d'Endpoint

projects/my-project/branches/main/endpoints/ep123

Base de données Lakebase provisionnée

Hôte

postgres-host.example.com

LakeFlow Job

ID de job

123456789

Expérimentation MLflow

ID d'expérience

456789012

Endpoint de service de modèle

Nom de l’Endpoint

my-serving-endpoint

Secret

Valeur secrète déchiffrée

(la valeur secrète)

SQL Warehouse

ID du Warehouse

a1b2c3d4e5f67890

Connexion Unity Catalog

Nom de la connexion

my_connection

Table Unity Catalog

Nom complet de la table

catalog.schema.table

Volume Unity Catalog

Chemin de volume

/Volumes/catalog/schema/volume

Fonction définie par l'utilisateur

Nom complet de la fonction

catalog.schema.my_function

Index de recherche IA

Nom complet de l'index

catalog.schema.my_index

Ressources supplémentaires