Utiliser les variables
Syntaxe
Une référence de variable s'écrit entre ${ et }, préfixée par son
scope :
| Syntaxe | Cible |
|---|---|
${var.env.NOM} | Une variable du projet, par sa clé ; la valeur utilisée est celle de l'environnement d'exécution |
${var.projet.Groupe.Nom} | Une variable du projet, par son chemin groupe.nom |
${var.company.NOM} | Une variable d'organisation |
Dans le panneau de réglages d'une brick, il suffit de taper ${ dans un champ
texte : un autocomplete liste les variables disponibles (groupées par
scope). La référence insérée s'affiche comme un badge typé (ENV, PROJET,
COMPANY) ; un clic sur la croix revient à une valeur littérale.
Dans les configurations de bricks
La référence peut être la valeur entière d'un champ, ou être noyée dans une chaîne plus large (requête SQL, URL, code Python, message d'alerte…).
Chemins de fichiers
/data/${var.env.REGION}/export.csv
Requêtes SQL
SELECT * FROM orders
WHERE order_date >= '${var.env.DATE_DEBUT}'
AND status = '${var.projet.Import.STATUT}'
URLs d'API
https://${var.env.API_HOST}/v1/orders?limit=${var.env.LIMITE}
Code Python
url = "${var.env.API_HOST}"
df = df[df["region"] == "${var.env.REGION}"]
Les champs numériques acceptent aussi une référence ${...} à la place d'un
nombre.
Résolution à l'exécution
Les références sont résolues au lancement du run, jamais figées dans le pipeline :
- exécution sur un environnement (« Lancer maintenant », workflows) : la valeur est celle de cet environnement ; si l'environnement ne la surcharge pas, la valeur par défaut du projet s'applique ;
- exécution en Studio (copie de travail) : les valeurs du projet s'appliquent ;
- les variables secrètes sont déchiffrées uniquement pour le runner, au moment de l'exécution.
Un même pipeline, déployé de dev à prod, change donc de configuration
sans aucune modification : seules les valeurs portées par l'environnement
diffèrent ; voir
Environnements et déploiement.
Exemple de bout en bout
- Variable
DB_SCHEMAdéfinie au projet, défautpublic; - l'environnement
prodsurchargeDB_SCHEMAavecsales_prod; - la brick Source base de données utilise
${var.env.DB_SCHEMA}dans sa requête ; - en Studio le run lit
public; lancé surprod, il litsales_prod.
Bonnes pratiques
- Référencez une variable partout où une valeur dépend de l'environnement (hôtes, chemins, schémas, limites) ;
- préférez des clés explicites en
SNAKE_CASEmajuscule (API_HOST,DATE_DEBUT) ; - vérifiez la zone Variables référencées de l'onglet Connexion d'une brick pour voir d'un coup d'œil ce qu'elle consomme.