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 :
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.
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 :
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
- JavaScript
import os
warehouse_id = os.getenv("WAREHOUSE_ID")
secret_value = os.getenv("SECRET_KEY")
const warehouseId = process.env.WAREHOUSE_ID;
const secretValue = process.env.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 |
|---|---|---|
Nom de l'application |
| |
ID de l’espace |
| |
Chemin d'Endpoint |
| |
Hôte |
| |
ID de job |
| |
ID d'expérience |
| |
Nom de l’Endpoint |
| |
Valeur secrète déchiffrée | (la valeur secrète) | |
ID du Warehouse |
| |
Nom de la connexion |
| |
Nom complet de la table |
| |
Chemin de volume |
| |
Nom complet de la fonction |
| |
Nom complet de l'index |
|