Variables & secrets
Configurer un service sans toucher au code, et garder ses jetons hors du dépôt.
Les variables d'environnement se règlent dans l'onglet Démarrage du service. Elles sont injectées au lancement du programme.
Pour un vrai secret, préfère le coffre
.env de ton service — donc visible dans le gestionnaire de fichiers, lisible par tes dépendances, et embarquée dans tes sauvegardes. Le coffre range une clé sans jamais rien écrire sur le disque. Garde les variables ci-dessous pour ce qui n'est pas secret (PORT, NODE_ENV, une URL publique).Pourquoi ne pas mettre ses jetons dans le code#
Un jeton écrit en dur finit dans l'historique Git, et y reste même après suppression. Il suffit qu'un dépôt passe public une seule minute pour qu'il soit moissonné. Une variable d'environnement, elle, ne quitte jamais la plateforme.
const token = "MTIzNDU2Nzg5.GaBcDe.FgHiJkLmNoPqRsTuVwXyZ"; // dans le dépôtconst token = process.env.DISCORD_TOKEN;
if (!token) throw new Error("DISCORD_TOKEN manquant");Lire une variable#
Le même exemple, dans chaque langage supporté :
const token = process.env.DISCORD_TOKEN;
if (!token) throw new Error("DISCORD_TOKEN manquant");Variables fournies par la plateforme#
PORT— le port sur lequel un service web doit écouter. Ne le codez jamais en dur : il peut changer d'un démarrage à l'autre.SERVER_MEMORY— la mémoire allouée, en mégaoctets. Utile pour calibrer un tas Java ou un pool de connexions.
Secrets : ce qui a changé#
Un secret ne se réaffiche plus tout seul
Conséquence pratique : si vous automatisez quelque chose qui relisait ces valeurs, prévoyez de les stocker de votre côté au moment où vous les créez.
Appliquer un changement#
Une variable modifiée n'est prise en compte qu'au démarrage suivant : redémarrez le service après l'avoir changée. Un programme déjà lancé ne voit pas la nouvelle valeur.
Astuce
undefined qui se propage trois fonctions plus loin.Pour passer l'URL d'une base de données par variable, voir Bases de données.