Configurer les variables d’environnement pour les jobs serverless
Les variables d’environnement fournissent une configuration spécifique au déploiement au code d’application dans les tâches Lakeflow Jobs serverless. Définissez des entrées de variables d’environnement nommées sur un job, puis sélectionnez une entrée pour chaque tâche qui en a besoin. Pendant la version bêta, vous configurez les variables d’environnement via l’API Jobs.
Bêta
Cette fonctionnalité est en version bêta. Pour l’utiliser, un administrateur du workspace doit activer Environment variables in Lakeflow Jobs depuis la page Previews . Consultez Gérer les aperçus Databricks.
Cette page décrit les variables d'environnement pour les jobs Serverless. Le compute Serverless ne prend pas en charge les scripts d'initialisation. Si votre charge de travail s'exécute sur un compute classique, consultez Définir et utiliser des variables d'environnement avec des scripts d'initialisation.
Fonctionnement des variables d'environnement
Les entrées des variables d’environnement sont définies au niveau du Job. Chaque entrée possède une clé unique, contient des variables en ligne et fonctionne avec tous les types de tâches serverless. Une touche d’entrée ne peut contenir que des lettres, des chiffres, des traits d’union et des soulignements. Chaque nom de variable en ligne doit start par une lettre ou un soulignement et ne peut contenir que des lettres, des chiffres et des sous-traitants.
Chaque tâche sélectionne une seule entrée de variable d'environnement avec environment_variables_key et ne reçoit que les variables de cette entrée. Les entrées ne sont jamais combinées et une entrée ne peut pas hériter d’une autre. Une tâche qui omet environment_variables_key ne reçoit aucune variable d’environnement.
Les variables d’environnement ne sont disponibles que pour le code d’application qui s’exécute dans le processus de tâche. Ils ne sont pas disponibles pour la logique d'exécution Spark.
Exigences
- Un administrateur de workspace a activé Environment variables in Lakeflow Jobs depuis la page Previews . Consultez Gérer les aperçus Databricks.
- Tâches qui s’exécutent sur la version 5 ou ultérieure de l’environnement Serverless.
Limitations
Les fonctions définies par l'utilisateur (UDF) ne peuvent pas lire les variables d'environnement, car les UDF s'exécutent dans la logique d'exécution de Spark plutôt que dans le processus de tâche.
Les limites suivantes s’appliquent :
Configuration | Limite |
|---|---|
Entrées de variables d’environnement par job | 10 |
Clé d’entrée | 1 à 100 caractères ; doit correspondre |
Variables en ligne par entrée | 100 |
Nom de variable en ligne | 1 à 256 caractères ; doit correspondre |
Valeur de variable en ligne | 512 caractères |
Configurez les variables d’environnement avec l’API Jobs
Utilisez le champ environment_variables dans une requête POST /api/2.2/jobs/create pour définir des entrées de variables d'environnement. Définissez environment_variables_key sur chaque tâche qui utilise une entrée.
L'exemple suivant définit des entrées de variables d'environnement distinctes pour une tâche de notebook et une tâche JAR. Chaque tâche sélectionne son entrée avec environment_variables_key, et tout type de tâche serverless peut utiliser une entrée de la même manière :
{
"name": "serverless-environment-variables-example",
"tasks": [
{
"task_key": "process_orders",
"notebook_task": {
"notebook_path": "/Workspace/Shared/process-orders"
},
"environment_key": "default",
"environment_variables_key": "production"
},
{
"task_key": "summarize",
"spark_jar_task": {
"main_class_name": "com.company.main"
},
"environment_key": "summary_env",
"environment_variables_key": "summary_vars"
}
],
"environments": [
{
"environment_key": "default",
"spec": {
"environment_version": "5",
"dependencies": []
}
},
{
"environment_key": "summary_env",
"spec": {
"environment_version": "5",
"java_dependencies": ["/Volumes/company/default/prod/summarize.jar"]
}
}
],
"environment_variables": [
{
"environment_variables_key": "production",
"variables": {
"APP_ENV": "production",
"REGION": "us-west-2"
}
},
{
"environment_variables_key": "summary_vars",
"variables": {
"APP_ENV": "production",
"LOG_LEVEL": "INFO",
"LOG_FILE": "service.log"
}
}
]
}
Vous pouvez également configurer des entrées de variables d’environnement avec les opérations Mettre à jour un job, Remplacer tous les paramètres d’un job et Soumettre une exécution unique.
Lire les variables d’environnement dans le code de l’application
Le code de l’application lit les variables configurées à partir de l’environnement de processus.
- Python
- Scala
import os
app_environment = os.environ["APP_ENV"]
region = os.environ["REGION"]
val appEnvironment = sys.env("APP_ENV")
val region = sys.env("REGION")