{"id":59423,"date":"2022-07-11T08:01:39","date_gmt":"2022-07-11T07:01:39","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=59423&#038;post_type=knowledgebase&#038;preview_id=59423"},"modified":"2025-10-01T20:45:54","modified_gmt":"2025-10-01T19:45:54","slug":"variables-environnement","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/","title":{"rendered":"Variables d&rsquo;environnement : Ce qu&rsquo;elles sont et comment les utiliser"},"content":{"rendered":"<p>Si vous avez travaill\u00e9 sur une forme quelconque de <a href=\"https:\/\/kinsta.com\/fr\/blog\/developpeur-full-stack\/\">d\u00e9veloppement d&rsquo;applications<\/a>, vous avez s\u00fbrement d\u00e9j\u00e0 entendu parler du terme \u00ab variables d&rsquo;environnement \u00bb. Les variables d&rsquo;environnement sont utilis\u00e9es pour stocker les secrets de l&rsquo;application et les donn\u00e9es de configuration, qui sont r\u00e9cup\u00e9r\u00e9es par votre application en cours d&rsquo;ex\u00e9cution lorsque cela est n\u00e9cessaire.<\/p>\n<p>Les variables d&rsquo;environnement ajoutent de la dynamique \u00e0 votre base de code statique ; vous pouvez basculer entre les ressources internes\/externes en fonction de la valeur de la variable d&rsquo;environnement transmise \u00e0 votre application.<\/p>\n<p>Cet article va vous pr\u00e9senter les variables d&rsquo;environnement. Vous apprendrez quelques m\u00e9thodes courantes de cr\u00e9ation et de gestion des variables d&rsquo;environnement et comprendrez quand les utiliser. \u00c0 la fin de cet article, vous serez en mesure d&rsquo;utiliser efficacement et en toute confiance les variables d&rsquo;environnement dans vos applications.<\/p>\n<p>Sans plus attendre, commen\u00e7ons !<br \/>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Qu&rsquo;est-ce qu&rsquo;une variable d&rsquo;environnement ?<\/h2>\n<p>Pour reprendre l&rsquo;explication ci-dessus, les variables d&rsquo;environnement sont des variables disponibles pour votre programme\/application de mani\u00e8re dynamique pendant l&rsquo;ex\u00e9cution. La valeur de ces variables peut provenir de toute une s\u00e9rie de sources &#8211; fichiers texte, gestionnaires de secrets tiers, scripts d&rsquo;appel, etc.<\/p>\n<p>Ce qui est important ici, c&rsquo;est le fait que la valeur de ces variables d&rsquo;environnement n&rsquo;est pas cod\u00e9e en dur dans votre programme. Elles sont v\u00e9ritablement dynamiques et peuvent \u00eatre modifi\u00e9es en fonction de l&rsquo;environnement dans lequel votre programme s&rsquo;ex\u00e9cute.<\/p>\n\n<h2>Types de variables d&rsquo;environnement<\/h2>\n<p>Il existe trois types principaux de variables d&rsquo;environnement dans un syst\u00e8me informatique bas\u00e9 sur Windows, et chacun d&rsquo;entre eux a ses cas d&rsquo;utilisation. Abordons-les un par un.<\/p>\n<h3>1. Variables d&rsquo;environnement syst\u00e8me<\/h3>\n<p>Les variables d&rsquo;environnement syst\u00e8me r\u00e9sident \u00e0 la racine sup\u00e9rieure du syst\u00e8me et sont les m\u00eames pour tous les processus ex\u00e9cut\u00e9s dans un syst\u00e8me sous tous les profils d&rsquo;utilisateur du syst\u00e8me. Votre syst\u00e8me d&rsquo;exploitation\/administrateur syst\u00e8me les d\u00e9finit g\u00e9n\u00e9ralement, et il est rare que vous ayez \u00e0 les manipuler.<\/p>\n<p>L&rsquo;une des utilisations les plus courantes d&rsquo;une variable d&rsquo;environnement syst\u00e8me consiste \u00e0 configurer une variable <code>PATH<\/code> vers un paquetage\/biblioth\u00e8que global \u00e0 utiliser par tous les utilisateurs du syst\u00e8me.<\/p>\n<h3>2. Variables d&rsquo;environnement utilisateur<\/h3>\n<p>Les variables d&rsquo;environnement utilisateur sont celles qui sont locales \u00e0 un profil utilisateur dans les syst\u00e8mes Windows. Ces variables sont utilis\u00e9es pour stocker des informations sp\u00e9cifiques \u00e0 l&rsquo;utilisateur, telles que le chemin d&rsquo;acc\u00e8s \u00e0 une installation locale de biblioth\u00e8ques qui ne doivent pas \u00eatre utilis\u00e9es par tous les utilisateurs, des valeurs sp\u00e9cifiques aux programmes install\u00e9s uniquement pour certains utilisateurs, etc.<\/p>\n<p>Vous n&rsquo;avez pas besoin de l&rsquo;administrateur syst\u00e8me pour apporter des modifications \u00e0 ces variables ; vous pouvez le faire vous-m\u00eame en tant qu&rsquo;utilisateur. Ces variables sont utiles pour mettre en \u0153uvre des changements locaux dans votre syst\u00e8me sans affecter les autres utilisateurs.<\/p>\n<h3>3. Variables d&rsquo;environnement d&rsquo;ex\u00e9cution\/de processus<\/h3>\n<p>Les variables d&rsquo;environnement du temps d&rsquo;ex\u00e9cution se limitent au temps d&rsquo;ex\u00e9cution ou au processus auquel elles sont associ\u00e9es. Elles sont g\u00e9n\u00e9ralement d\u00e9finies par le processus parent qui cr\u00e9e le nouveau processus et sont accompagn\u00e9es des variables d&rsquo;environnement syst\u00e8me et utilisateur.<\/p>\n<p>Vous pouvez utiliser le scriptage de terminal pour cr\u00e9er et stocker ces variables \u00e0 la vol\u00e9e. Les variables d&rsquo;ex\u00e9cution ne sont g\u00e9n\u00e9ralement pas permanentes \u00e0 moins d&rsquo;\u00eatre script\u00e9es, et vous devez les d\u00e9finir chaque fois que vous d\u00e9marrez un nouveau processus.<\/p>\n<h3>Variables d&rsquo;environnement dans les syst\u00e8mes bas\u00e9s sur Unix<\/h3>\n<p>Contrairement aux syst\u00e8mes Windows, les syst\u00e8mes bas\u00e9s sur Unix ne disposent pas de trois couches de types de variables d&rsquo;environnement. Dans ces syst\u00e8mes, tout est stock\u00e9 sous un objet <code>var<\/code> et peut \u00eatre acc\u00e9d\u00e9\/modifi\u00e9 par le programme en cours d&rsquo;ex\u00e9cution.<\/p>\n<p>Si vous devez d\u00e9finir certaines variables d&rsquo;environnement comme devant \u00eatre charg\u00e9es par d\u00e9faut \u00e0 chaque fois qu&rsquo;un programme s&rsquo;ex\u00e9cute sur votre syst\u00e8me, vous devez les d\u00e9finir dans des fichiers tels que <code>.~\/bashrc<\/code> ou <code>~.profile<\/code> qui sont charg\u00e9s au d\u00e9marrage du syst\u00e8me.<\/p>\n<h3>Variables d&rsquo;environnement vs pseudos variables d&rsquo;environnement<\/h3>\n<p>Une ligne distincte de variables d&rsquo;environnement dynamiques est disponible dans les syst\u00e8mes Windows et DOS, connue sous le nom de pseudos variables d&rsquo;environnement. Il ne s&rsquo;agit pas de paires de cl\u00e9s et de valeurs affect\u00e9es statiquement, mais plut\u00f4t de r\u00e9f\u00e9rences dynamiques qui renvoient diverses valeurs lorsqu&rsquo;elles sont interrog\u00e9es.<\/p>\n<p>Alors que vous pouvez attribuer manuellement une valeur \u00e0 une variable d&rsquo;environnement en utilisant la commande <code>SET<\/code> ou son \u00e9quivalent, vous ne pouvez pas attribuer de valeurs aux pseudo variables d&rsquo;environnement. Il existe une <a href=\"https:\/\/en.wikipedia.org\/wiki\/Environment_variable#Windows_2\" target=\"_blank\" rel=\"noopener noreferrer\">liste fixe<\/a> de telles variables, et vous pouvez les utiliser dans votre code pour vous faciliter la t\u00e2che. Parmi les cas d&rsquo;utilisation populaires, citons <code>%CD%<\/code> pour le r\u00e9pertoire actuel et <code>%TIME%<\/code> pour l&rsquo;heure actuelle.<\/p>\n<h2>Pourquoi utiliser les variables d&rsquo;environnement ?<\/h2>\n<p>Maintenant que vous comprenez ce qu&rsquo;est une variable d&rsquo;environnement et ses diff\u00e9rents types, il est temps de savoir pourquoi vous devriez en faire un usage intensif dans vos applications.<\/p>\n<h3>S\u00e9paration des pr\u00e9occupations<\/h3>\n<p>L&rsquo;une des raisons les plus importantes pour lesquelles vous devriez utiliser des variables d&rsquo;environnement dans vos applications est d&rsquo;adh\u00e9rer \u00e0 un principe de conception populaire et utile &#8211; la s\u00e9paration des pr\u00e9occupations. Ce principe de conception stipule que les programmes informatiques doivent \u00eatre divis\u00e9s en sections distinctes afin de les g\u00e9rer efficacement. Chaque section doit \u00eatre bas\u00e9e sur l&rsquo;une des pr\u00e9occupations principales du programme, et il doit y avoir un couplage minimal entre ces sections.<\/p>\n<p>Vous pouvez consid\u00e9rer la configuration de l&rsquo;application comme l&rsquo;une de ces pr\u00e9occupations ; elle doit donc \u00eatre s\u00e9par\u00e9e du programme principal. L&rsquo;une des meilleures fa\u00e7ons de le faire est de la stocker dans un fichier externe et de l&rsquo;injecter en cas de besoin. Les variables d&rsquo;environnement vous aident \u00e0 isoler les donn\u00e9es de configuration critiques de l&rsquo;application \u00e0 l&rsquo;aide de fichiers env ou de stockages de variables distants. Ainsi, vos d\u00e9veloppeurs ne re\u00e7oivent que les informations dont ils ont besoin.<\/p>\n<h3>Maintien de jeux de configuration ind\u00e9pendants dans tous les environnements<\/h3>\n<p>Outre l&rsquo;isolation des configurations d&rsquo;applications de votre code source, vous devez \u00e9galement pouvoir passer facilement d&rsquo;un ensemble de donn\u00e9es de configuration \u00e0 un autre. Si vous choisissez de coder en dur les valeurs de configuration de votre application dans votre code source, il peut devenir presque impossible de remplacer ces valeurs en fonction de conditions externes telles que les environnements de d\u00e9ploiement.<\/p>\n<p>L&rsquo;utilisation de variables d&rsquo;environnement vous aide \u00e0 d\u00e9coupler vos donn\u00e9es de configuration de votre code et \u00e0 standardiser la mani\u00e8re dont ces informations sont fournies \u00e0 votre application, ce qui vous permet de modifier\/changer les informations fournies \u00e0 la vol\u00e9e.<\/p>\n<h3>S\u00e9curisation des secrets<\/h3>\n<p>Les secrets de votre application rel\u00e8vent des informations sensibles. Si de mauvaises personnes mettent la main dessus, elles peuvent acc\u00e9der \u00e0 l&rsquo;architecture interne de votre appli et aux ressources de tiers. Les exemples courants sont les cl\u00e9s AWS et les d\u00e9tails des comptes syst\u00e8me. L&rsquo;acc\u00e8s non autoris\u00e9 \u00e0 ces cl\u00e9s peut entra\u00eener une perte d&rsquo;argent et de donn\u00e9es d&rsquo;application. Les pirates peuvent m\u00eame aller jusqu&rsquo;\u00e0 emp\u00eacher votre application de fonctionner normalement.<\/p>\n<p>Il est donc vital que vous prot\u00e9giez ces secrets. Si vous les laissez tra\u00eener dans votre base de code, tous vos d\u00e9veloppeurs peuvent y avoir acc\u00e8s. Si vous ne suivez pas les m\u00e9thodes de dissimulation de code appropri\u00e9es, vos applications peuvent faire l&rsquo;objet d&rsquo;une ing\u00e9nierie inverse pour r\u00e9cup\u00e9rer les cl\u00e9s qui se trouvent dans votre code. Isoler ces secrets via des variables d&rsquo;environnement peut emp\u00eacher de tels sc\u00e9narios de se produire.<\/p>\n<h2>Exemples de cas d&rsquo;utilisation des variables d&rsquo;environnement<\/h2>\n<p>Maintenant que vous avez une id\u00e9e claire du fonctionnement des variables d&rsquo;environnement et de la mani\u00e8re dont vous devez les utiliser efficacement, voici quelques sc\u00e9narios courants dans lesquels vous pouvez utiliser les variables d&rsquo;environnement :<\/p>\n<ul>\n<li><strong>Type d&rsquo;environnement <\/strong>: Les variables d&rsquo;environnement sont souvent utilis\u00e9es pour stocker le nom de l&rsquo;environnement dans lequel l&rsquo;application est en cours d&rsquo;ex\u00e9cution. La logique de l&rsquo;application peut utiliser cette valeur pour acc\u00e9der au bon ensemble de ressources ou activer\/d\u00e9sactiver certaines fonctionnalit\u00e9s ou sections de l&rsquo;application.<\/li>\n<li><strong>Nom de domaine <\/strong>: Le nom de domaine d&rsquo;une application peut varier en fonction de son environnement. L&rsquo;isoler vous permet \u00e9galement de modifier facilement le nom de domaine de votre application sans avoir \u00e0 rechercher ses occurrences dans l&rsquo;ensemble de la base de code.<\/li>\n<li><strong>URL d&rsquo;API <\/strong>: Chaque environnement de votre application peut avoir des API d\u00e9ploy\u00e9es dans diff\u00e9rents environnements \u00e9galement.<\/li>\n<li><strong>Cl\u00e9s priv\u00e9es <\/strong>: Les cl\u00e9s des services et ressources payants doivent \u00eatre isol\u00e9es du code source de l&rsquo;application afin qu&rsquo;elles ne tombent pas accidentellement dans de mauvaises mains.<\/li>\n<li><strong>Num\u00e9ros de compte de service, etc <\/strong>: Vous pouvez varier d&rsquo;autres informations sp\u00e9cifiques au syst\u00e8me, telles que les num\u00e9ros de compte de service, les keytabs, etc., en fonction de l&rsquo;environnement de l&rsquo;application pour la gestion et la surveillance des ressources.<\/li>\n<\/ul>\n<h2>Comment stocker les variables d&rsquo;environnement<\/h2>\n<p>Maintenant que vous comprenez pourquoi les variables d&rsquo;environnement sont importantes, il est temps d&rsquo;examiner comment vous pouvez les stocker et y acc\u00e9der dans votre application. Nous vous pr\u00e9sentons ci-dessous trois m\u00e9thodes diff\u00e9rentes mais populaires de gestion des variables d&rsquo;environnement dans une application.<\/p>\n<h3>Utilisation des fichiers .env<\/h3>\n<p>Les fichiers<code>.env\u00a0<\/code>\u00a0sont sans aucun doute la fa\u00e7on la plus simple et la plus populaire de g\u00e9rer les variables d&rsquo;environnement. L&rsquo;id\u00e9e est simple : vous stockez vos variables d&rsquo;environnement dans un fichier nomm\u00e9 <code>.env<\/code> \u00e0 la racine de votre projet. L&rsquo;application recherche les variables dans ce fichier et les charge pour les utiliser pendant l&rsquo;ex\u00e9cution. Voici \u00e0 quoi ressemble un fichier <code>.env<\/code> typique :<\/p>\n<pre><code class=\"language-bash\">VAR_UNO=UNE_CL\u00c9_ICI\nVAR_DOS=AUTRE_CL\u00c9_ICI\n<\/code><\/pre>\n<p><code>.env<\/code> les fichiers vous permettent \u00e9galement de d\u00e9finir des ensembles de variables d&rsquo;environnement et d&rsquo;y acc\u00e9der en fonction de l&rsquo;environnement d&rsquo;ex\u00e9cution de votre application ou d&rsquo;autres facteurs. Au lieu d&rsquo;enregistrer le fichier sous le nom de <code>.env<\/code>, vous pouvez cr\u00e9er plusieurs fichiers et les conserver sous les noms <code>.env.dev<\/code> et <code>.env.prod<\/code>. Dans ces fichiers, vous pouvez d\u00e9finir les m\u00eames ensembles de variables, mais avec des valeurs diff\u00e9rentes, en fonction de l&rsquo;environnement.<\/p>\n<h4>Exemple de mod\u00e8le<\/h4>\n<p>Lorsque vous travaillez avec les fichiers <code>.env<\/code>, il n&rsquo;est pas recommand\u00e9 de les ajouter \u00e0 votre syst\u00e8me de contr\u00f4le de version (nous y reviendrons plus tard). Par cons\u00e9quent, vous devriez d\u00e9finir un \u00ab .env.template \u00bb dans votre projet afin que les d\u00e9veloppeurs puissent suivre le mod\u00e8le et cr\u00e9er un fichier <code>.env<\/code> pour eux-m\u00eames localement.<\/p>\n<p>Voici \u00e0 quoi ressemblerait un fichier <code>.env.template<\/code>:<\/p>\n<pre><code class=\"language-bash\">VAR_UNO= # Votre valeur ici\nVAR_DOS= # Votre valeur ici\n<\/code><\/pre>\n<p>Il n&rsquo;est pas n\u00e9cessaire qu&rsquo;il suive une quelconque convention, tant qu&rsquo;il est explicite pour votre \u00e9quipe de d\u00e9veloppement. Pour simplifier ce processus, vous pouvez \u00e9galement utiliser des paquets tels que <a href=\"https:\/\/www.npmjs.com\/package\/env-template\" target=\"_blank\" rel=\"noopener noreferrer\">env-template<\/a>.<\/p>\n<h4>Avantages<\/h4>\n<p>Voici quelques raisons pour lesquelles vous devriez envisager d&rsquo;utiliser les fichiers <code>.env<\/code> pour g\u00e9rer les variables d&rsquo;environnement dans votre application.<\/p>\n<h5>Simple \u00e0 utiliser<\/h5>\n<p>Cette m\u00e9thode est la plus simple dans la lign\u00e9e des techniques de gestion des variables d&rsquo;environnement. Tout ce que vous avez \u00e0 faire est de cr\u00e9er un fichier texte brut qui contient vos secrets et de le stocker \u00e0 la racine de votre projet.<\/p>\n<p>Le changement d&rsquo;environnement est aussi simple que de modifier le fichier env lui-m\u00eame. Vous pouvez stocker plusieurs fichiers sous les noms <code>.env.dev<\/code>, <code>.env.prod<\/code>, <code>.env.uat<\/code>, etc., et configurer votre code source pour qu&rsquo;il acc\u00e8de \u00e0 ces fichiers en fonction de l&rsquo;environnement dans lequel il est ex\u00e9cut\u00e9.<\/p>\n<h5>Acc\u00e8s local<\/h5>\n<p>Vous pouvez facilement configurer les fichiers <code>.env<\/code> dans un environnement de d\u00e9veloppement local. Contrairement aux gestionnaires de variables natifs de la plateforme, vous n&rsquo;avez pas besoin de d\u00e9ployer votre application pour exploiter la fonctionnalit\u00e9 des variables d&rsquo;environnement. Par rapport aux gestionnaires de secrets, les fichiers <code>.env<\/code> sont plus faciles \u00e0 configurer localement, et il n&rsquo;y a pas de d\u00e9pendance au r\u00e9seau pour acc\u00e9der aux secrets de votre application.<\/p>\n<h5>Support open source<\/h5>\n<p>Il existe de nombreux paquets open source pour vous aider \u00e0 charger et \u00e0 g\u00e9rer les secrets d&rsquo;applications \u00e0 partir des fichiers <code>env<\/code>. Vous n&rsquo;avez pas besoin de d\u00e9pendre de services payants, et vos options ne sont pas limit\u00e9es en mati\u00e8re de gestion des secrets d&rsquo;applications. Il existe un large \u00e9ventail de biblioth\u00e8ques tierces \u00e0 code source ouvert pour vous aider \u00e0 g\u00e9rer vos fichiers env. Quelques exemples populaires\/utiles sont <a href=\"https:\/\/www.npmjs.com\/package\/dotenv\" target=\"_blank\" rel=\"noopener noreferrer\">dotenv<\/a>, <a href=\"https:\/\/www.npmjs.com\/package\/env-template\" target=\"_blank\" rel=\"noopener noreferrer\">env-template<\/a>, et <a href=\"https:\/\/www.npmjs.com\/package\/cross-env\" target=\"_blank\" rel=\"noopener noreferrer\">cross-env<\/a>.<\/p>\n<h4>Inconv\u00e9nients<\/h4>\n<p>Voici quelques inconv\u00e9nients des fichiers env que vous devriez conna\u00eetre avant de les utiliser dans vos projets.<\/p>\n<h5>Formatage<\/h5>\n<p>Les fichiers <code>.env<\/code> stockent les secrets de votre application sous la forme de paires cl\u00e9-valeur. Le format habituel pour stocker les variables d&rsquo;environnement dans un fichier <code>.env<\/code> est le suivant :<\/p>\n<pre><code class=\"language-bash\">Cl\u00e91=Valeur1\n<\/code><\/pre>\n<p>Vous devez respecter strictement ce format pour que votre application puisse lire vos secrets d&rsquo;application avec succ\u00e8s. Si vous faites une petite erreur quelque part entre des dizaines ou des centaines de lignes de variables d&rsquo;environnement, l&rsquo;ensemble du fichier risque de ne pas \u00eatre analys\u00e9, et votre programme lancera des erreurs sans rapport les unes avec les autres. Le fait qu&rsquo;il y ait une erreur d&rsquo;analyse dans votre fichier <code>.env<\/code> ne sera peut-\u00eatre m\u00eame pas mis en \u00e9vidence. C&rsquo;est pourquoi vous devez \u00eatre prudent lorsque vous utilisez les fichiers <code>.env<\/code>.<\/p>\n<h5>Risque de fuite accidentelle de secrets lors du partage\/stockage<\/h5>\n<p>Les fichiers <code>.env<\/code> \u00e9tant des fichiers texte en clair, ils sont vuln\u00e9rables \u00e0 une exposition accidentelle lorsqu&rsquo;ils sont stock\u00e9s sur un disque dur partag\u00e9 ou envoy\u00e9s via un r\u00e9seau non s\u00e9curis\u00e9. Vous devez donc faire particuli\u00e8rement attention \u00e0 ne pas divulguer les secrets de votre application lorsque vous les avez stock\u00e9s \u00e0 l&rsquo;aide des fichiers <code>.env<\/code>.<\/p>\n<h3>Utilisation du stockage des variables natives de la plateforme<\/h3>\n<p>Une autre option populaire pour stocker les variables d&rsquo;environnement consiste \u00e0 s&rsquo;appuyer sur le stockage des variables de votre plateforme de d\u00e9ploiement. La plupart des environnements de d\u00e9ploiement, tels que Heroku, <a href=\"https:\/\/kinsta.com\/fr\/alternative-a-aws\/\">AWS<\/a>, Netlify, etc., fournissent un espace permettant aux utilisateurs de t\u00e9l\u00e9verser des secrets qui sont ensuite inject\u00e9s dans le runtime de votre application. Vous pouvez consulter la documentation de votre plateforme de d\u00e9ploiement pour savoir si elle le prend en charge et comment l&rsquo;utiliser.<\/p>\n<p>Voici un aper\u00e7u rapide du gestionnaire de variables d&rsquo;environnement de Netlify :<\/p>\n<figure id=\"attachment_125214\" aria-describedby=\"caption-attachment-125214\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125214 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/netlify-environment-variable-manager-1024x627.png\" alt=\"Le gestionnaire de variables d'environnement de Netlify.\" width=\"1024\" height=\"627\"><figcaption id=\"caption-attachment-125214\" class=\"wp-caption-text\">Le gestionnaire de variables d&rsquo;environnement de Netlify.<\/figcaption><\/figure>\n<h4>Avantages<\/h4>\n<p>Voici pourquoi vous devriez envisager d&rsquo;utiliser des solutions de stockage de variables natives de la plateforme.<\/p>\n<h5>Hautement s\u00e9curis\u00e9<\/h5>\n<p>Puisque cette option est enti\u00e8rement g\u00e9r\u00e9e par votre plateforme de d\u00e9ploiement, elle est forc\u00e9ment plus s\u00fbre que le stockage de vos secrets dans un <a href=\"https:\/\/kinsta.com\/fr\/blog\/meilleurs-editeurs-de-texte\/\">fichier texte brut<\/a>. Vous pouvez contr\u00f4ler qui a acc\u00e8s au gestionnaire de variables, et vous pouvez \u00eatre s\u00fbr que les secrets ne seront jamais pouss\u00e9s accidentellement vers votre VCS.<\/p>\n<h5>Facile \u00e0 mettre \u00e0 jour<\/h5>\n<p>La mise \u00e0 jour des variables d&rsquo;environnement lorsqu&rsquo;elles sont stock\u00e9es ind\u00e9pendamment est plus simple : vous n&rsquo;avez pas besoin de modifier votre code source et de cr\u00e9er une nouvelle version pour celui-ci. Vous pouvez simplement modifier les valeurs dans la plateforme et reconstruire votre projet. Il recevra les nouvelles valeurs lors de son prochain d\u00e9marrage.<\/p>\n<p>Les probl\u00e8mes de formatage ont \u00e9galement disparu, puisque la plupart des gestionnaires de d\u00e9ploiement sp\u00e9cifiques \u00e0 une plateforme lintent les cl\u00e9s au fur et \u00e0 mesure que vous les saisissez. Dans des cas comme celui de Netlify, vous entrez les secrets sous une forme pr\u00e9format\u00e9e, ce qui \u00e9limine les risques de faire une erreur de formatage.<\/p>\n<h5>Permet la collaboration<\/h5>\n<p>Les plateformes de d\u00e9ploiement \u00e9tant accessibles \u00e0 toute votre \u00e9quipe, vous pouvez facilement partager les secrets avec les bonnes personnes sans avoir \u00e0 envoyer des fichiers texte via Internet. Vous pouvez contr\u00f4ler qui a acc\u00e8s au gestionnaire de variables (dans la plupart des cas) et l&rsquo;utiliser comme un d\u00e9p\u00f4t central pour les secrets de votre application.<\/p>\n<h4>Inconv\u00e9nients<\/h4>\n<p>Bien que les gestionnaires de variables natifs de la plateforme semblent \u00eatre la solution dont vous avez besoin, il y a quelques probl\u00e8mes que vous devriez garder \u00e0 l&rsquo;esprit avant d&rsquo;opter pour eux.<\/p>\n<h5>D\u00e9pendance \u00e0 la plateforme<\/h5>\n<p>Comme leur nom l&rsquo;indique, ils sont hautement sp\u00e9cifiques \u00e0 la plateforme que vous utilisez. Dans certains cas, il se peut que votre plateforme de d\u00e9ploiement ne propose m\u00eame pas un tel service. Changer de plateforme de d\u00e9ploiement pour avoir acc\u00e8s \u00e0 un tel service pourrait ne pas sembler \u00eatre la meilleure d\u00e9cision.<\/p>\n<h5>Non uniforme<\/h5>\n<p>Puisqu&rsquo;ils sont offerts et g\u00e9r\u00e9s enti\u00e8rement par la plateforme de d\u00e9ploiement, de tels services peuvent \u00eatre hautement non-uniformes. Le d\u00e9placement des variables d&rsquo;une plateforme \u00e0 l&rsquo;autre peut \u00eatre probl\u00e9matique. Vous ne pouvez m\u00eame pas supposer que chaque plateforme de d\u00e9ploiement offre les options d&rsquo;importation\/exportation des variables d&rsquo;environnement. Bien que la plupart le fassent, c&rsquo;est enti\u00e8rement entre les mains de la plateforme. Si vous avez une longue liste de variables d&rsquo;environnement, il y a de fortes chances que vous vous retrouviez dans une situation de verrouillage du fournisseur \u00e0 petite \u00e9chelle.<\/p>\n<h5>Pas de support local<\/h5>\n<p>Si ces services sont parfaits pour acc\u00e9der aux variables d&rsquo;environnement dans les d\u00e9ploiements de votre application, il est rare que vous puissiez les utiliser en d\u00e9veloppant votre application localement. Dans la plupart des cas, vous devrez recourir \u00e0 la gestion des fichiers locaux <code>.env<\/code>. Bien que cela remplisse l&rsquo;objectif, cela complique inutilement l&rsquo;ensemble de la configuration.<\/p>\n<h3>Utilisation de gestionnaires de secrets<\/h3>\n<p>La troisi\u00e8me option, qui en est encore \u00e0 ses d\u00e9buts, consiste \u00e0 utiliser des gestionnaires de secrets d\u00e9di\u00e9s. Les gestionnaires de secrets sont des services tiers qui vous permettent d&rsquo;isoler compl\u00e8tement les secrets de votre application de votre code source\/d\u00e9ploiement et de les r\u00e9cup\u00e9rer en cas de besoin via des connexions r\u00e9seau s\u00e9curis\u00e9es.<\/p>\n<h4>Avantages<\/h4>\n<p>Voici quelques-uns des avantages que les gestionnaires de secrets offrent par rapport aux autres m\u00e9thodes de gestion des secrets.<\/p>\n<h5>Hautement s\u00e9curis\u00e9<\/h5>\n<p>\u00c9tant donn\u00e9 que vos secrets sont stock\u00e9s dans un service compl\u00e8tement isol\u00e9, vous pouvez \u00eatre s\u00fbr que vous ne les divulguerez probablement jamais accidentellement en les partageant avec vos coll\u00e8gues ou via des commits de contr\u00f4le de version. La plateforme tierce se charge de garder vos secrets en s\u00e9curit\u00e9, et elle a g\u00e9n\u00e9ralement des accords de niveau de service assez stricts en mati\u00e8re de s\u00e9curit\u00e9 des donn\u00e9es.<\/p>\n<p>M\u00eame lorsque vous acc\u00e9dez aux secrets depuis l&rsquo;int\u00e9rieur de votre application, la plupart des gestionnaires de secrets fournissent leur propre code client qui peut <a href=\"https:\/\/kinsta.com\/fr\/blog\/securite-cloud\/\">r\u00e9cup\u00e9rer<\/a> et autoriser l&rsquo;acc\u00e8s aux secrets en <a href=\"https:\/\/kinsta.com\/fr\/blog\/securite-cloud\/\">toute s\u00e9curit\u00e9<\/a> lorsque cela est n\u00e9cessaire.<\/p>\n<h5>Uniformit\u00e9 dans tous les environnements<\/h5>\n<p>Les secrets \u00e9tant d\u00e9sormais ind\u00e9pendants de votre base de code et de vos environnements de d\u00e9ploiement, vous pouvez d\u00e9sormais b\u00e9n\u00e9ficier d&rsquo;une uniformit\u00e9 entre les environnements. Vous n&rsquo;avez pas besoin de prendre des dispositions particuli\u00e8res pour accueillir de nouveaux d\u00e9veloppeurs ou de prendre des mesures sp\u00e9ciales avant de mettre votre application en production &#8211; la plupart de ces aspects sont simplifi\u00e9s ou pris en charge par votre gestionnaire de secrets.<\/p>\n<h4>Inconv\u00e9nients<\/h4>\n<p>Bien que les gestionnaires de secrets semblent \u00eatre la meilleure solution possible pour la gestion des variables d&rsquo;environnement, ils ont leur propre lot d&rsquo;inconv\u00e9nients.<\/p>\n<h5>Co\u00fbt<\/h5>\n<p>La gestion des variables d&rsquo;environnement est une activit\u00e9 interne aux projets depuis longtemps. M\u00eame la plupart des plateformes de d\u00e9ploiement fournissent cette fonctionnalit\u00e9 gratuitement puisqu&rsquo;elles n&rsquo;encourent aucun co\u00fbt suppl\u00e9mentaire pour cela.<\/p>\n<p>Cependant, les gestionnaires de secrets \u00e9tant des services totalement ind\u00e9pendants, ils ont leur propre co\u00fbt d&rsquo;exploitation. Les utilisateurs doivent donc supporter ce co\u00fbt lorsqu&rsquo;ils utilisent ces services.<\/p>\n<h5>Les premiers stades de la technologie<\/h5>\n<p>Comme la technologie est relativement nouvelle, on ne peut jamais \u00eatre s\u00fbr de la fa\u00e7on dont elle sera adopt\u00e9e par l&rsquo;industrie dans les jours \u00e0 venir. Bien que les gestionnaires secrets soient tr\u00e8s prometteurs en termes de s\u00e9curit\u00e9 et de facilit\u00e9 de gestion, le facteur co\u00fbt et les probl\u00e8mes de traitement des donn\u00e9es pourraient entra\u00eener une adoption plut\u00f4t lente de la technologie.<\/p>\n<h2>Comment travailler avec les variables d&rsquo;environnement<\/h2>\n<p>Maintenant que vous comprenez le concept des variables d&rsquo;environnement et les moyens disponibles pour les impl\u00e9menter dans une application, voyons comment vous pouvez travailler avec elles via le terminal et dans les <a href=\"https:\/\/kinsta.com\/fr\/blog\/applications-node-js\/\">applications bas\u00e9es sur Node.js<\/a>.<\/p>\n<h3>Variables d&rsquo;environnement dans le terminal<\/h3>\n<p>Puisque les variables d&rsquo;environnement sont sp\u00e9cifiques aux processus, vous pouvez les d\u00e9finir et les supprimer via le terminal afin qu&rsquo;elles soient transmises aux processus que votre terminal g\u00e9n\u00e8re.<\/p>\n<h4>Recherche des valeurs des variables<\/h4>\n<p>Pour afficher la liste des variables d&rsquo;environnement dans votre terminal, vous pouvez ex\u00e9cuter les commandes suivantes sp\u00e9cifiques \u00e0 votre syst\u00e8me d&rsquo;exploitation.<\/p>\n<p>Sous Windows :<\/p>\n<pre><code class=\"language-bash\">set\n<\/code><\/pre>\n<p>Sous Linux ou MacOS :<\/p>\n<pre><code class=\"language-bash\">env\n<\/code><\/pre>\n<p>Ceci affichera une liste de toutes les variables d&rsquo;environnement disponibles dans votre terminal en cours d&rsquo;ex\u00e9cution.<\/p>\n<h4>D\u00e9finition de nouvelles variables<\/h4>\n<p>Pour d\u00e9finir de nouvelles variables via le terminal, vous pouvez ex\u00e9cuter les commandes suivantes.<\/p>\n<p>Sous Windows :<\/p>\n<pre><code class=\"language-bash\">set \"VAR_NAME=var_value\"\n<\/code><\/pre>\n<p>Sous Linux ou MacOS :<\/p>\n<pre><code class=\"language-bash\">VAR_NAME=var_value\n<\/code><\/pre>\n<h4>Suppression des variables<\/h4>\n<p>Pour supprimer une variable d&rsquo;environnement, vous devez ex\u00e9cuter les commandes suivantes.<\/p>\n<p>Sous Windows :<\/p>\n<pre><code class=\"language-bash\">set \"VAR_NAME=\"\n<\/code><\/pre>\n<p>Sous Linux ou MacOS :<\/p>\n<pre><code class=\"language-bash\">unset VAR_NAME\n<\/code><\/pre>\n<p>Veuillez noter que les m\u00e9thodes pr\u00e9sent\u00e9es ci-dessus ne servent qu&rsquo;\u00e0 cr\u00e9er\/supprimer des variables d&rsquo;environnement pour la session actuelle du terminal.<\/p>\n<h3>Variables d&rsquo;environnement dans Node.js<\/h3>\n<p><a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-javascript\/\">JavaScript<\/a> est l&rsquo;un des langages de programmation les plus populaires \u00e0 l&rsquo;heure actuelle. Il est largement utilis\u00e9 dans la cr\u00e9ation <a href=\"https:\/\/kinsta.com\/fr\/blog\/developpeur-frontend\/\">d&rsquo;applications backend et frontend<\/a>, ce qui en fait l&rsquo;un des langages de programmation les plus polyvalents.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-node-js\/\">Node.js<\/a> est l&rsquo;un des <a href=\"https:\/\/kinsta.com\/fr\/blog\/bibliotheques-javascript\/\">frameworks JS<\/a> les plus utilis\u00e9s pour cr\u00e9er des applications backend. Voyons comment vous pouvez g\u00e9rer facilement les variables d&rsquo;environnement dans les applications bas\u00e9es sur Node.js.<\/p>\n<h4>Acc\u00e9der directement aux variables d&rsquo;environnement<\/h4>\n<p>Node.js vous fournit une r\u00e9f\u00e9rence aux variables d&rsquo;environnement de votre processus actuel via <code>process.env<\/code>. Vous pouvez visualiser les variables d&rsquo;environnement disponibles en affichant cet objet sur la console.<\/p>\n<figure id=\"attachment_125215\" aria-describedby=\"caption-attachment-125215\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125215 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/printing-process-env-1024x579.png\" alt=\"Affichage de l'objet process.env.\" width=\"1024\" height=\"579\"><figcaption id=\"caption-attachment-125215\" class=\"wp-caption-text\">Affichage de l&rsquo;objet process.env.<\/figcaption><\/figure>\n<p>Cet objet contiendra des variables disponibles pour le processus Node en cours d&rsquo;ex\u00e9cution. Vous pouvez y ajouter de nouvelles variables en les d\u00e9clarant avant de lancer votre application, comme ceci :<\/p>\n<pre><code class=\"language-bash\">VAR_UNO=SOMETHING node index.js\n<\/code><\/pre>\n<figure id=\"attachment_125216\" aria-describedby=\"caption-attachment-125216\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125216 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/printing-process-env-new-variable-1024x614.png\" alt=\"Affichage de l'objet process.env apr\u00e8s avoir ajout\u00e9 une nouvelle variable.\" width=\"1024\" height=\"614\"><figcaption id=\"caption-attachment-125216\" class=\"wp-caption-text\">Affichage de l&rsquo;objet process.env apr\u00e8s avoir ajout\u00e9 une nouvelle variable.<\/figcaption><\/figure>\n<p>Comme vous pouvez le voir, la nouvelle variable est ajout\u00e9e \u00e0 votre objet <code>process.env<\/code>. Cependant, vous ne pouvez pas acc\u00e9der aux variables d\u00e9finies sous un fichier <code>.env<\/code> via cette m\u00e9thode. Pour cela, vous devez utiliser un paquet comme <code>dotenv<\/code> pour charger le fichier <code>.env<\/code> au moment de l&rsquo;ex\u00e9cution.<\/p>\n<h4>Utilisation du paquet dotenv pour acc\u00e9der aux fichiers .env<\/h4>\n<p>Le paquet <code>dotenv<\/code> vous aide \u00e0 charger les variables d&rsquo;environnement stock\u00e9es dans les fichiers <code>.env<\/code> \u00e0 la racine de votre projet. Son utilisation est simple, vous devez l&rsquo;installer en ex\u00e9cutant la commande suivante :<\/p>\n<pre><code class=\"language-bash\">npm i dotenv@16.0.0\n<\/code><\/pre>\n<p>Ensuite, vous devez ajouter la ligne de code suivante au d\u00e9but du code de votre application pour initialiser le paquet :<\/p>\n<pre><code class=\"language-js\">require('dotenv').config()\n<\/code><\/pre>\n<p>C&rsquo;est tout ! Maintenant, les secrets que vous stockez dans un fichier <code>.env<\/code> \u00e0 la racine de votre projet seront charg\u00e9s dans votre objet <code>process.env<\/code> d\u00e8s que l&rsquo;application d\u00e9marrera. Nous verrons cette m\u00e9thode en action plus tard dans le tutoriel suivant.<\/p>\n<h2>Tutoriel sur les variables d&rsquo;environnement<\/h2>\n<p>La meilleure fa\u00e7on de comprendre un concept technique est de le regarder en action. Voici un tutoriel rapide qui vous aidera \u00e0 vous familiariser avec les variables d&rsquo;environnement et \u00e0 apprendre leur utilisation en d\u00e9tail.<\/p>\n<p>Dans le guide suivant, nous allons vous montrer comment utiliser les variables d&rsquo;environnement par les trois moyens que nous avons mentionn\u00e9s plus haut : les fichiers<code>.env<\/code>, les gestionnaires de variables natifs de la plateforme et les gestionnaires de secrets. Toutes ces m\u00e9thodes n\u00e9cessitent une \u00e9tape commune, qui consiste \u00e0 configurer un projet Node.js de base.<\/p>\n<h3>Premi\u00e8rement : Cr\u00e9er un projet Node.js<\/h3>\n<p>Pour commencer, assurez-vous que <a href=\"https:\/\/kinsta.com\/fr\/blog\/comment-installer-node-js\/\">Node.js est install\u00e9<\/a> sur votre syst\u00e8me. Une fois que vous l&rsquo;avez install\u00e9 sur votre syst\u00e8me, vous aurez acc\u00e8s \u00e0 npm (abr\u00e9viation de Node Package Manager). npm vous aide \u00e0 installer des paquets node \u00e0 partir du registre global npm via la ligne de commande. Il sera utile pour installer les paquets li\u00e9s \u00e0 notre projet de test.<\/p>\n<p>Ensuite, ouvrez un terminal et cr\u00e9ez un nouveau r\u00e9pertoire. Initialisez un nouveau projet Node dans celui-ci :<\/p>\n<pre><code class=\"language-bash\">mkdir my-app\ncd my-app\nnpm init\n<\/code><\/pre>\n<p>Continuez d&rsquo;appuyer sur la touche Entr\u00e9e pendant les questions entrantes pour accepter les options par d\u00e9faut. Une fois fait, votre terminal devrait ressembler \u00e0 ceci :<\/p>\n<figure id=\"attachment_125217\" aria-describedby=\"caption-attachment-125217\" style=\"width: 1011px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125217 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/creating-new-project-1011x1024.png\" alt=\"Cr\u00e9ation d'un nouveau projet.\" width=\"1011\" height=\"1024\"><figcaption id=\"caption-attachment-125217\" class=\"wp-caption-text\">Cr\u00e9ation d&rsquo;un nouveau projet.<\/figcaption><\/figure>\n<p>Vous pouvez maintenant ouvrir ce projet \u00e0 l&rsquo;aide d&rsquo;un IDE tel que Visual Studio Code ou IntelliJ IDEA.<\/p>\n<p>Cr\u00e9ez un nouveau fichier \u00e0 la racine de votre dossier de projet et enregistrez-le sous le nom <code>index.js<\/code>. Ce sera le point de d\u00e9part de votre application. Ensuite, installez Express pour cr\u00e9er et tester rapidement des serveurs REST :<\/p>\n<pre><code class=\"language-bash\">npm i express\n<\/code><\/pre>\n<p>Une fois Express install\u00e9, collez le morceau de code suivant dans votre fichier <code>index.js<\/code>:<\/p>\n<pre><code class=\"language-js\">const express = require(\"express\")\n\nconst app = express()\n\napp.get(\"\/\", (req, res) =&gt; {\n   res.send(\"Hello world!\")\n})\n\napp.listen(8080);\n<\/code><\/pre>\n<p>Ceci est un extrait de d\u00e9marrage pour un point \u00ab\u00a0Hello World\u00a0\u00bb basique utilisant Node.js et Express. Ex\u00e9cutez ce qui suit sur votre ligne de commande :<\/p>\n<pre><code class=\"language-bash\">node index.js\n<\/code><\/pre>\n<p>Ceci d\u00e9marrera votre application node + express. Si vous allez sur http:\/\/localhost:8080 dans votre navigateur web, vous obtiendrez un r\u00e9sultat similaire :<\/p>\n<figure id=\"attachment_125218\" aria-describedby=\"caption-attachment-125218\" style=\"width: 902px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125218 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/hello-world.png\" alt=\"Affichage de Hello World !\" width=\"902\" height=\"448\"><figcaption id=\"caption-attachment-125218\" class=\"wp-caption-text\">Affichage de Hello World !<\/figcaption><\/figure>\n<p>Cela indique que vous avez configur\u00e9 votre application correctement ! L&rsquo;\u00e9tape suivante consiste \u00e0 mettre \u00e0 jour votre application pour utiliser les variables d&rsquo;environnement. Mettez \u00e0 jour le code dans <code>index.js<\/code> pour qu&rsquo;il corresponde \u00e0 l&rsquo;extrait suivant :<\/p>\n<pre><code class=\"language-js\">const express = require(\"express\")\n\nconst app = express()\n\napp.get(\"\/\", (req, res) =&gt; {\n  \n   \/\/ the responseMessage object extracts its values from environment variables\n   \/\/ If a value is not found, it instead stores the string \"not found\"\n   const responseMessage = {\n       environment: process.env.environment || \"Not found\",\n       apiBaseUrl: process.env.apiBaseUrl || \"Not found\"\n   }\n\n   res.send(responseMessage)\n})\n\napp.listen(8080);\n<\/code><\/pre>\n<p>Au lieu d&rsquo;envoyer un message \u00ab\u00a0Hello world !\u00a0\u00bb dans la r\u00e9ponse, nous allons maintenant envoyer un objet JSON qui transporte deux informations :<\/p>\n<ul>\n<li><code>environment<\/code>: Indique l&rsquo;environnement actuel dans lequel l&rsquo;app est d\u00e9ploy\u00e9e<\/li>\n<li><code>apiBaseUrl<\/code>: Porte l&rsquo;URL de base pour une API hypoth\u00e9tique. Nous modifierons la valeur de cette URL en fonction de l&rsquo;environnement dans lequel l&rsquo;application est d\u00e9ploy\u00e9e.<\/li>\n<\/ul>\n<p>En cas d&rsquo;impossibilit\u00e9 d&rsquo;acc\u00e9der aux variables d&rsquo;environnement, l&rsquo;objet contiendra \u00ab\u00a0Not found\u00a0\u00bb comme valeurs pour les deux cl\u00e9s d\u00e9crites ci-dessus. Avant de poursuivre, ex\u00e9cutez \u00e0 nouveau la commande <code>node index.js<\/code> et vous obtiendrez la sortie suivante :<\/p>\n<figure id=\"attachment_125220\" aria-describedby=\"caption-attachment-125220\" style=\"width: 902px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125220 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/env-apibaseurl-not-found-1.png\" alt=\"Affichage des valeurs par d\u00e9faut pour les variables env.\" width=\"902\" height=\"448\"><figcaption id=\"caption-attachment-125220\" class=\"wp-caption-text\">Affichage des valeurs par d\u00e9faut pour les variables <code>env<\/code>.<\/figcaption><\/figure>\n<p>Cela indique que votre application est actuellement incapable d&rsquo;acc\u00e9der aux variables d&rsquo;environnement. En plus de cela, nous n&rsquo;avons m\u00eame pas d\u00e9fini les valeurs de ces variables. Voyons les diff\u00e9rentes fa\u00e7ons de le faire dans les sections suivantes.<\/p>\n<h3>Type 1 : Ajouter des variables d&rsquo;environnement via les fichiers env<\/h3>\n<p>Commen\u00e7ons par la mani\u00e8re la plus basique d&rsquo;ajouter des variables d&rsquo;environnement &#8211; les fichiers env. Dans la racine de votre projet, cr\u00e9ez un nouveau fichier appel\u00e9 <code>.env<\/code> et stockez-y le code suivant :<\/p>\n<pre><code class=\"language-bash\">environment=DEV\napiBaseUrl=http:\/\/dev.myApi.com:8080\/v1\n<\/code><\/pre>\n<p>Ensuite, red\u00e9marrez votre application en ex\u00e9cutant \u00e0 nouveau la commande <code>node index.js<\/code> et v\u00e9rifiez le r\u00e9sultat :<\/p>\n<figure id=\"attachment_125220\" aria-describedby=\"caption-attachment-125220\" style=\"width: 902px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125220 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/env-apibaseurl-not-found-1.png\" alt=\"Impression des valeurs pour les variables env\" width=\"902\" height=\"448\"><figcaption id=\"caption-attachment-125220\" class=\"wp-caption-text\">Impression des valeurs pour les variables <code>env<\/code>.<\/figcaption><\/figure>\n<p>Vous constaterez que la sortie reste la m\u00eame. En effet, m\u00eame si vous avez d\u00e9fini la valeur des variables d&rsquo;environnement, vous n&rsquo;avez pas vraiment indiqu\u00e9 \u00e0 votre application o\u00f9 les trouver. C&rsquo;est l\u00e0 que des paquets tels que <code>dotenv<\/code> entrent en jeu.<\/p>\n<p>Ex\u00e9cutez la commande suivante pour installer <code>dotenv<\/code>:<\/p>\n<pre><code class=\"language-bash\">npm i dotenv@16.0.0\n<\/code><\/pre>\n<p>Pour commencer \u00e0 utiliser <code>dotenv<\/code> dans votre code, ajoutez le code suivant \u00e0 la ligne num\u00e9ro 2 de votre index.js :<\/p>\n<pre><code class=\"language-js\">require('dotenv').config()\n<\/code><\/pre>\n<p>Ensuite, red\u00e9marrez l&rsquo;application et v\u00e9rifiez la sortie :<\/p>\n<figure id=\"attachment_125221\" aria-describedby=\"caption-attachment-125221\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125221 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/env-dev-apibaseurl-dev-myapi-com-1024x433.png\" alt=\"Affichage des nouvelles valeurs pour les variables env\" width=\"1024\" height=\"433\"><figcaption id=\"caption-attachment-125221\" class=\"wp-caption-text\">Affichage des nouvelles valeurs pour les variables <code>env<\/code>.<\/figcaption><\/figure>\n<p>Comme vous pouvez le voir, les valeurs des variables d&rsquo;environnement ont \u00e9t\u00e9 charg\u00e9es depuis votre fichier <code>.env<\/code>!<\/p>\n<p>Maintenant, pour pimenter les choses, renommons notre fichier <code>.env<\/code> en <code>.env.dev<\/code> et cr\u00e9ons un autre fichier du nom de <code>.env.staging<\/code>. Collez le morceau de code suivant dans le nouveau fichier :<\/p>\n<pre><code class=\"language-bash\">environment=STAGING\napiBaseUrl=http:\/\/staging.myApi.com:3000\/v1\n<\/code><\/pre>\n<p>Une fois que vous avez termin\u00e9, remplacez la ligne num\u00e9ro 2 de votre fichier <code>index.js<\/code> par le morceau de code suivant :<\/p>\n<pre><code class=\"language-js\">require('dotenv').config({\n   path: \"STAGING\" === process.env.NODE_ENV?.toUpperCase() ? '.\/.env.staging' : '.\/.env.dev'\n})\n\nconsole.log(process.env.NODE_ENV)\n<\/code><\/pre>\n<p>Ce qui a chang\u00e9 ici, c&rsquo;est que nous demandons maintenant au paquet <code>dotenv<\/code> d&rsquo;aller chercher le contenu des variables d&rsquo;environnement dans l&rsquo;un des deux fichiers disponibles en fonction d&rsquo;une autre variable d&rsquo;environnement appel\u00e9e <code>NODE_ENV<\/code>. D&rsquo;o\u00f9 vient la valeur de cette variable d&rsquo;environnement ? De votre terminal.<\/p>\n<p>Pour tester cette configuration, ex\u00e9cutez votre application \u00e0 l&rsquo;aide de la commande suivante :<\/p>\n<pre><code class=\"language-bash\">NODE_ENV=DEV node index.js\n<\/code><\/pre>\n<p>Si vous vous rendez maintenant sur localhost:8080, vous remarquerez la r\u00e9ponse suivante :<\/p>\n<figure id=\"attachment_125221\" aria-describedby=\"caption-attachment-125221\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125221 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/env-dev-apibaseurl-dev-myapi-com-1024x433.png\" alt=\"Impression des valeurs env pour l'environnement dev.\" width=\"1024\" height=\"433\"><figcaption id=\"caption-attachment-125221\" class=\"wp-caption-text\">Impression des valeurs env pour l&rsquo;environnement dev.<\/figcaption><\/figure>\n<p>Maintenant, fermez l&rsquo;application en cours d&rsquo;ex\u00e9cution et ex\u00e9cutez-la \u00e0 nouveau en utilisant la commande suivante :<\/p>\n<pre><code class=\"language-bash\">NODE_ENV=STAGING node index.js\n<\/code><\/pre>\n<p>En allant sur localhost:8080, vous obtiendrez maintenant la r\u00e9ponse suivante :<\/p>\n<figure id=\"attachment_125222\" aria-describedby=\"caption-attachment-125222\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125222 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/dev-staging-apibaseurl-staging-myapi-com-1024x386.png\" alt=\"Affichage des valeurs env pour l'environnement de staging.\" width=\"1024\" height=\"386\"><figcaption id=\"caption-attachment-125222\" class=\"wp-caption-text\">Affichage des valeurs env pour l&rsquo;environnement de staging.<\/figcaption><\/figure>\n<p>Voici comment vous pouvez utiliser les fichiers <code>.env<\/code> pour acc\u00e9der \u00e0 diff\u00e9rents ensembles de variables en fonction de conditions externes. La condition externe ici est la variable d&rsquo;environnement externe <code>NODE_ENV<\/code> qui est essentiellement une variable d&rsquo;environnement utilisateur alors que <code>environment<\/code> et <code>apiBaseUrl<\/code> \u00e9taient des variables d&rsquo;environnement d&rsquo;ex\u00e9cution. Le profil utilisateur appelant fournit la valeur de la variable <code>NODE_ENV<\/code> et l&rsquo;application l&rsquo;utilise pour prendre des d\u00e9cisions internes.<\/p>\n<p>Si vous \u00eates sous Windows, vous pourriez rencontrer des difficult\u00e9s lors de l&rsquo;ex\u00e9cution des deux commandes pr\u00e9c\u00e9dentes. Le terminal Windows pourrait ne pas vous permettre d&rsquo;assigner des variables d&rsquo;environnement utilisateur \u00e0 la vol\u00e9e en utilisant la syntaxe <code>KEY=VALUE<\/code> (sauf s&rsquo;il s&rsquo;agit de Bash sous Windows).<\/p>\n<p>Une solution rapide dans ce cas est de faire usage des scripts et de <code>cross-env<\/code>.<\/p>\n<p>Installez <code>cross-env<\/code> en ex\u00e9cutant la commande suivante :<\/p>\n<pre><code class=\"language-bash\">npm i --save-dev cross-env\n<\/code><\/pre>\n<p>Ensuite, allez dans votre fichier <code>package.json<\/code> et mettez \u00e0 jour la cl\u00e9 <code>scripts<\/code> pour qu&rsquo;elle corresponde \u00e0 ceci :<\/p>\n<pre><code class=\"language-json\">\/\/ \u2026\n\"scripts\": {\n   \"test\": \"echo \"Error: no test specified\" && exit 1\",\n   \"start-dev\": \"cross-env NODE_ENV=DEV node index.js\",\n   \"start-staging\": \"cross-env NODE_ENV=STAGING node index.js\"\n },\n\/\/ \u2026\n<\/code><\/pre>\n<p>Vous pouvez maintenant ex\u00e9cuter les commandes suivantes pour lancer votre application avec deux ensembles diff\u00e9rents de variables d&rsquo;environnement :<\/p>\n<pre><code class=\"language-bash\">npm run start-dev\t\t# to start with dev variables\nnpm run start-staging\t\t# to start with staging variables\n<\/code><\/pre>\n<p>Il s&rsquo;agit d&rsquo;une correction universelle et vous pouvez utiliser ces scripts sur bash\/zsh \u00e9galement.<\/p>\n<p>Ensuite, voyons comment utiliser un gestionnaire de variables tiers.<\/p>\n<h3>Type 2 : Utiliser le gestionnaire de variables d&rsquo;environnement natif de Heroku<\/h3>\n<p>Pour pouvoir suivre cette partie du tutoriel, vous aurez besoin d&rsquo;un compte Heroku. Allez-y et cr\u00e9ez-le avant de continuer.<\/p>\n<p>Avant de d\u00e9ployer l&rsquo;application sur Heroku, il y a quelques changements que vous devrez apporter \u00e0 votre code. Tout d&rsquo;abord, ajoutez un nouveau script dans votre <code>package.json<\/code> appel\u00e9 start :<\/p>\n<pre><code class=\"language-json\">\"scripts\": {\n   \"test\": \"echo \"Error: no test specified\" && exit 1\",\n   \"start\": \"node index.js\",\n   \"start-dev\": \"cross-env NODE_ENV=DEV node index.js\",\n   \"start-staging\": \"cross-env NODE_ENV=STAGING node index.js\"\n },\n<\/code><\/pre>\n<p>Ce script sera utilis\u00e9 par Heroku pour ex\u00e9cuter votre application une fois d\u00e9ploy\u00e9e. Aussi, allez \u00e0 la derni\u00e8re ligne de votre fichier <code>index.js<\/code> et mettez-la \u00e0 jour comme suit :<\/p>\n<pre><code class=\"language-js\">app.listen(process.env.PORT || 3000);\n<\/code><\/pre>\n<p>Cela garantira que l&rsquo;application est d\u00e9ploy\u00e9e sur le port sp\u00e9cifi\u00e9 par Heroku.<\/p>\n<p>Ensuite, vous devez <a href=\"https:\/\/devcenter.heroku.com\/articles\/heroku-cli#install-the-heroku-cli\" target=\"_blank\" rel=\"noopener noreferrer\">installer le CLI Heroku<\/a> localement pour pouvoir acc\u00e9der \u00e0 vos applications Heroku depuis votre ligne de commande. Pour ce tutoriel, vous pouvez utiliser la commande suivante pour installer le CLI :<\/p>\n<pre><code class=\"language-bash\">npm i -g heroku\n<\/code><\/pre>\n<p>Cependant, les docs de Heroku recommandent de l&rsquo;installer via l&rsquo;une des autres m\u00e9thodes list\u00e9es dans le lien mentionn\u00e9 ci-dessus pour un meilleur support. Une fois install\u00e9, ex\u00e9cutez la commande suivante pour vous connecter \u00e0 votre compte Heroku :<\/p>\n<pre><code class=\"language-bash\">heroku login\n<\/code><\/pre>\n<p>Une fois cela fait, allez sur dashboard.heroku.com et connectez-vous \u00e0 votre compte. Ensuite, cr\u00e9ez une nouvelle application en cliquant sur <strong>Nouveau<\/strong> &gt; <strong>Cr\u00e9er une nouvelle application<\/strong>.<\/p>\n<figure id=\"attachment_125224\" aria-describedby=\"caption-attachment-125224\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125224 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-new-app-1024x250.png\" alt=\"Cr\u00e9er une nouvelle application.\" width=\"1024\" height=\"250\"><figcaption id=\"caption-attachment-125224\" class=\"wp-caption-text\">Cr\u00e9er une nouvelle application.<\/figcaption><\/figure>\n<p>Sur la page suivante, cliquez sur le bouton <strong>Cr\u00e9er une appli<\/strong> sans entrer de d\u00e9tails. Cela cr\u00e9era une nouvelle application Heroku pour vous avec un nom al\u00e9atoire.<\/p>\n<figure id=\"attachment_125225\" aria-describedby=\"caption-attachment-125225\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125225 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-naming-app-1024x371.png\" alt=\"Nommez votre application.\" width=\"1024\" height=\"371\"><figcaption id=\"caption-attachment-125225\" class=\"wp-caption-text\">Nommez votre application.<\/figcaption><\/figure>\n<p>Voici \u00e0 quoi ressemblerait le tableau de bord de votre application :<\/p>\n<figure id=\"attachment_125226\" aria-describedby=\"caption-attachment-125226\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125226 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-new-app-dashboard-1024x583.png\" alt=\"Le tableau de bord de la nouvelle application.\" width=\"1024\" height=\"583\"><figcaption id=\"caption-attachment-125226\" class=\"wp-caption-text\">Le tableau de bord de la nouvelle application.<\/figcaption><\/figure>\n<p>Cette page contient \u00e9galement des instructions sur la fa\u00e7on de d\u00e9ployer votre application sur Heroku via le CLI. Voici la liste des commandes que vous devez ex\u00e9cuter pour d\u00e9ployer votre application sur Heroku :<\/p>\n<pre><code class=\"language-bash\">git init\nheroku git:remote -a whispering-shelf-49396 # change whispering-shelf-49396 with the name of your app. You can get it in your dashboard\ngit add index.js package-lock.json package.json # do not push the <code>.env<\/code> files since we'll provide that via the in-app secrets manager git commit -am \"Initial commit\" git push heroku main <\/code><\/pre>\n<p>Une fois le d\u00e9ploiement termin\u00e9 avec succ\u00e8s, vous pouvez visualiser l&rsquo;application d\u00e9ploy\u00e9e via le tableau de bord en cliquant sur le bouton <strong>Ouvrir l&rsquo;application<\/strong><\/p>\n<p>Si vous avez tout fait correctement, vous verrez la r\u00e9ponse suivante :<\/p>\n<figure id=\"attachment_125227\" aria-describedby=\"caption-attachment-125227\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125227 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-env-apibaseurl-not-found-1024x505.png\" alt=\"Acc\u00e9dez \u00e0 votre application d\u00e9ploy\u00e9e.\" width=\"1024\" height=\"505\"><figcaption id=\"caption-attachment-125227\" class=\"wp-caption-text\">Acc\u00e9dez \u00e0 votre application d\u00e9ploy\u00e9e.<\/figcaption><\/figure>\n<p>Pourquoi cela se produit-il, pensez-vous peut-\u00eatre ? C&rsquo;est parce que nous n&rsquo;avons pas encore fourni les variables d&rsquo;environnement \u00e0 notre application sous une forme quelconque. Si vous v\u00e9rifiez les commandes que vous avez utilis\u00e9es pour d\u00e9ployer l&rsquo;application, vous remarquerez que nous n&rsquo;avons pas pouss\u00e9 les fichiers <code>.env<\/code> vers notre contr\u00f4le de version. Nous n&rsquo;avons pas non plus d\u00e9fini la valeur <code>NODE_ENV<\/code> dans le script de d\u00e9marrage.<\/p>\n<p>Pour injecter des variables d&rsquo;environnement dans votre application maintenant, vous devez naviguer vers <strong>Settings<\/strong> &gt; <strong>Config Vars<\/strong> sur votre tableau de bord Heroku. En cliquant sur <strong>Reveal Config Vars<\/strong>, vous verrez un \u00e9cran similaire :<\/p>\n<figure id=\"attachment_125228\" aria-describedby=\"caption-attachment-125228\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125228 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-app-config-vars-1024x593.png\" alt=\"Acc\u00e9der aux vars de configuration de votre application.\" width=\"1024\" height=\"593\"><figcaption id=\"caption-attachment-125228\" class=\"wp-caption-text\">Acc\u00e9der aux vars de configuration de votre application.<\/figcaption><\/figure>\n<p>Vous pouvez maintenant saisir le contenu de votre fichier <code>.env<\/code> ici :<\/p>\n<figure id=\"attachment_125229\" aria-describedby=\"caption-attachment-125229\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125229 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-app-config-vars-filled-1024x593.png\" alt=\"Saisissez vos variables d'environnement dans Heroku.\" width=\"1024\" height=\"593\"><figcaption id=\"caption-attachment-125229\" class=\"wp-caption-text\">Saisissez vos variables d&rsquo;environnement dans Heroku.<\/figcaption><\/figure>\n<p>Si vous revenez en arri\u00e8re et rafra\u00eechissez l&rsquo;URL de votre application, vous remarquerez que les valeurs ont \u00e9t\u00e9 mises \u00e0 jour :<\/p>\n<figure id=\"attachment_125230\" aria-describedby=\"caption-attachment-125230\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125230 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-env-production-apibaseurl-prod-myapi-com-1024x374.png\" alt=\"L'application d\u00e9ploy\u00e9e sur Heroku peut maintenant acc\u00e9der aux variables d'environnement.\" width=\"1024\" height=\"374\"><figcaption id=\"caption-attachment-125230\" class=\"wp-caption-text\">L&rsquo;application d\u00e9ploy\u00e9e sur Heroku peut maintenant acc\u00e9der aux variables d&rsquo;environnement.<\/figcaption><\/figure>\n<p>C&rsquo;est ainsi que vous pouvez utiliser le gestionnaire de secrets d&rsquo;une plateforme de d\u00e9ploiement pour g\u00e9rer vos variables d&rsquo;environnement. Cependant, cela vous oblige \u00e0 g\u00e9rer manuellement les variables d&rsquo;environnement via le tableau de bord de la plateforme. Comme vous pouvez le voir pour Heroku, il n&rsquo;y a pas d&rsquo;option pour importer un grand dump de variables d&rsquo;environnement \u00e0 partir d&rsquo;un fichier, vous obligeant \u00e0 saisir chacune d&rsquo;entre elles une par une. Cela peut parfois devenir assez g\u00eanant.<\/p>\n<p>La section suivante pr\u00e9sente une m\u00e9thode plus efficace de gestion des secrets d&rsquo;applications &#8211; les gestionnaires de secrets.<\/p>\n<h3>Type 3 : Utiliser Doppler pour g\u00e9rer les variables d&rsquo;environnement<\/h3>\n<p>Les m\u00e9thodes pr\u00e9sent\u00e9es ci-dessus n&rsquo;offrent pas d&rsquo;uniformit\u00e9 entre les plateformes. En g\u00e9n\u00e9ral, vous ne vous fiez pas aux fichiers env lors du d\u00e9ploiement en production, et il n&rsquo;est pas possible d&rsquo;utiliser les gestionnaires de variables natifs de la plateforme lorsque vous travaillez localement. Les gestionnaires secrets comme Doppler comblent cette lacune.<\/p>\n<p>Pour l&rsquo;essayer par vous-m\u00eame, vous devez d&rsquo;abord cr\u00e9er un compte gratuit sur <a href=\"https:\/\/dashboard.doppler.com\/login\" target=\"_blank\" rel=\"noopener noreferrer\">Doppler<\/a>.<\/p>\n<p>Une fois que c&rsquo;est fait, vous pouvez suivre le processus. Il est fort probable qu&rsquo;il vous cr\u00e9era automatiquement un projet type sous le nom de example-project. Pour plus de simplicit\u00e9, laissons-le de c\u00f4t\u00e9 et cr\u00e9ons un nouveau projet pour notre cas d&rsquo;utilisation.<\/p>\n<p>Allez dans le tableau de bord et cliquez sur l&rsquo;ic\u00f4ne plus \u00e0 c\u00f4t\u00e9 de Projets.<\/p>\n<figure id=\"attachment_125231\" aria-describedby=\"caption-attachment-125231\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125231 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-projects-1024x461.png\" alt=\"Vos projets dans Doppler.\" width=\"1024\" height=\"461\"><figcaption id=\"caption-attachment-125231\" class=\"wp-caption-text\">Vos projets dans Doppler.<\/figcaption><\/figure>\n<p>Saisissez son nom comme \u00ab my-app \u00bb et proc\u00e9dez. Voici \u00e0 quoi devrait ressembler le projet une fois qu&rsquo;il sera pr\u00eat :<\/p>\n<figure id=\"attachment_125232\" aria-describedby=\"caption-attachment-125232\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125232 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-project-env-1024x321.png\" alt=\"Les environnements et variables de votre projet.\" width=\"1024\" height=\"321\"><figcaption id=\"caption-attachment-125232\" class=\"wp-caption-text\">Les environnements et variables de votre projet.<\/figcaption><\/figure>\n<p>Cliquez sur l&rsquo;\u00e9l\u00e9ment de liste dev config. Cliquez sur <strong>Add New Secret<\/strong> et ajoutez deux secrets comme suit :<\/p>\n<figure id=\"attachment_125233\" aria-describedby=\"caption-attachment-125233\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125233 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-dev-env-vars-filled-1024x486.png\" alt=\"Ajout des variables dev \u00e0 Doppler.\" width=\"1024\" height=\"486\"><figcaption id=\"caption-attachment-125233\" class=\"wp-caption-text\">Ajout des variables dev \u00e0 Doppler.<\/figcaption><\/figure>\n<p>Cliquez sur le bouton Enregistrer pour sauvegarder vos modifications. Notez que Doppler ne prend pas en charge la casse camel lorsque vous nommez vos secrets. Bien qu&rsquo;il soit g\u00e9n\u00e9ralement pr\u00e9f\u00e9rable de garder les noms de secrets en majuscules, l&rsquo;utilisation de Doppler ne vous laisse pas d&rsquo;autres options. Pour identifier les secrets r\u00e9cup\u00e9r\u00e9s par Doppler, nous les avons pr\u00e9fix\u00e9s avec le mot \u00ab secret \u00bb <code>DP_<\/code><\/p>\n<p>Maintenant que les variables sont cr\u00e9\u00e9es et stock\u00e9es dans Doppler, int\u00e9grons-les dans notre base de code. Pour cela, vous devez configurer <a href=\"https:\/\/docs.doppler.com\/docs\/install-cli\" target=\"_blank\" rel=\"noopener noreferrer\">le CLI de Doppler<\/a>. Voici un bref aper\u00e7u de ce que vous devez faire.<\/p>\n<p>Tout d&rsquo;abord, installez le CLI localement en suivant les <a href=\"https:\/\/docs.doppler.com\/docs\/install-cli#installation\" target=\"_blank\" rel=\"noopener noreferrer\">instructions sp\u00e9cifiques \u00e0 votre syst\u00e8me d&rsquo;exploitation<\/a>. Ensuite, connectez-vous au CLI de Doppler avec votre compte nouvellement cr\u00e9\u00e9 en utilisant la commande suivante :<\/p>\n<pre><code class=\"language-bash\">doppler login\n<\/code><\/pre>\n<p>Une fois connect\u00e9, ex\u00e9cutez la commande suivante pour vous connecter \u00e0 votre projet Doppler distant depuis votre CLI :<\/p>\n<pre><code class=\"language-bash\">doppler setup\n<\/code><\/pre>\n<p>Une fois que vous vous \u00eates connect\u00e9 au bon projet, vous pourrez acc\u00e9der \u00e0 vos secrets via la commande suivante :<\/p>\n<pre><code class=\"language-bash\">doppler run\n<\/code><\/pre>\n<p>Cependant, nous n&rsquo;allons pas ex\u00e9cuter cette commande directement. Nous allons plut\u00f4t l&rsquo;ajouter \u00e0 l&rsquo;un de nos scripts d&rsquo;ex\u00e9cution afin qu&rsquo;elle soit ex\u00e9cut\u00e9e automatiquement \u00e0 chaque fois que l&rsquo;application d\u00e9marre. Mettons \u00e0 jour le fichier <code>package.json<\/code> avec le nouveau script d&rsquo;ex\u00e9cution pour l&rsquo;environnement <code>dev<\/code>:<\/p>\n<pre><code class=\"language-json\">\/\/ \u2026\n\"scripts\": {\n   \"test\": \"echo \"Error: no test specified\" && exit 1\",\n   \"start\": \"node index.js\",\n   \"start-dev\": \"doppler run -- node index.js\", \/\/ This has to be updated\n   \"start-staging\": \"cross-env NODE_ENV=STAGING node index.js\"\n },\n\/\/ \u2026\n<\/code><\/pre>\n<p>Rappelez-vous \u00e9galement que nous avons cr\u00e9\u00e9 de nouveaux noms de variables dans Doppler qui commencent par <code>DP_<\/code>. Nous devrons donc mettre \u00e0 jour notre fichier <code>index.js<\/code> pour afficher \u00e9galement cette variable :<\/p>\n<pre><code class=\"language-js\">const express = require(\"express\")\nrequire('dotenv').config({\n   path: \"STAGING\" === process.env.NODE_ENV?.toUpperCase() ? '.\/.env.staging' : '.\/.env.dev'\n})\n\nconsole.log(process.env.NODE_ENV)\n\nconst app = express()\n\napp.get(\"\/\", (req, res) =&gt; {\n  \n   \/\/ the responseMessage object extracts its values from environment variables\n   \/\/ If a value is not found, it instead stores the string \"not found\"\n   const responseMessage = {\n       environment: process.env.environment || \"Not found\",\n       apiBaseUrl: process.env.apiBaseUrl || \"Not found\",\n       DP_ENVIRONMENT: process.env.DP_ENVIRONMENT || \"Not found\" \/\/ Add the new variable here\n   }\n\n   res.send(responseMessage)\n})\n\napp.listen(process.env.PORT || 3000);\n<\/code><\/pre>\n<p>Pour voir les choses en action, ex\u00e9cutez la commande suivante :<\/p>\n<pre><code class=\"language-bash\">npm run start-dev\n<\/code><\/pre>\n<p>Voici \u00e0 quoi devrait ressembler http:\/\/localhost:3000 maintenant :<\/p>\n<figure id=\"attachment_125234\" aria-describedby=\"caption-attachment-125234\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125234 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-env-dev-apibaseurl-dev-myapi-com-dpenv-dev-1024x402.png\" alt=\"Acc\u00e8s aux secrets Doppler dans une application fonctionnant en local.\" width=\"1024\" height=\"402\"><figcaption id=\"caption-attachment-125234\" class=\"wp-caption-text\">Acc\u00e8s aux secrets Doppler dans une application fonctionnant en local.<\/figcaption><\/figure>\n<p>La troisi\u00e8me variable de la liste (<code>DP_ENVIRONMENT<\/code>) est r\u00e9cup\u00e9r\u00e9e directement de Doppler.<\/p>\n<p>Ensuite, vous pouvez connecter Doppler \u00e0 votre plateforme de d\u00e9ploiement pour acc\u00e9der \u00e0 ces secrets via votre application d\u00e9ploy\u00e9e. Pour ce faire, commen\u00e7ons par cr\u00e9er un nouvel environnement dans Doppler pour un nouvel ensemble de secrets de d\u00e9ploiement.<\/p>\n<p>Retournez \u00e0 la page d&rsquo;accueil de votre projet my-app. Cliquez sur l&rsquo;unique \u00e9l\u00e9ment de la liste <strong>Staging<\/strong>:<\/p>\n<figure id=\"attachment_125235\" aria-describedby=\"caption-attachment-125235\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125235 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-projects-vars-filled-1024x381.png\" alt=\"Le tableau de bord de votre application.\" width=\"1024\" height=\"381\"><figcaption id=\"caption-attachment-125235\" class=\"wp-caption-text\">Le tableau de bord de votre application.<\/figcaption><\/figure>\n<p>Vous remarquerez que les deux variables secr\u00e8tes que vous avez d\u00e9finies dans l&rsquo;environnement <code>dev<\/code> sont d\u00e9j\u00e0 disponibles ici mais qu&rsquo;il leur manque des valeurs :<\/p>\n<figure id=\"attachment_125236\" aria-describedby=\"caption-attachment-125236\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125236 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-stg-vars-empty-1024x559.png\" alt=\"Les variables d'environnement de votre application pour l'environnement de staging.\" width=\"1024\" height=\"559\"><figcaption id=\"caption-attachment-125236\" class=\"wp-caption-text\">Les variables d&rsquo;environnement de votre application pour l&rsquo;environnement de staging.<\/figcaption><\/figure>\n<p>Ajoutez les valeurs suivantes et cliquez sur <strong>Enregistrer<\/strong>:<\/p>\n<figure id=\"attachment_125237\" aria-describedby=\"caption-attachment-125237\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125237 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-stg-vars-filled-1024x397.png\" alt=\"Les variables d'environnement de votre application pour l'environnement de staging.\" width=\"1024\" height=\"397\"><figcaption id=\"caption-attachment-125237\" class=\"wp-caption-text\">Les variables d&rsquo;environnement de votre application pour l&rsquo;environnement de staging.<\/figcaption><\/figure>\n<p>Une fois que vous avez termin\u00e9 ici, cliquez sur l&rsquo;onglet <strong>Integrations<\/strong> et sur <strong>Add Sync<\/strong>\u00a0sur cette page pour commencer \u00e0 vous connecter \u00e0 votre plateforme de d\u00e9ploiement. Vous recevrez une liste des plateformes avec lesquelles Doppler peut s&rsquo;int\u00e9grer :<\/p>\n<figure id=\"attachment_125238\" aria-describedby=\"caption-attachment-125238\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125238 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-integrations-set-up-1024x574.png\" alt=\"Connectez votre application Doppler \u00e0 Heroku.\" width=\"1024\" height=\"574\"><figcaption id=\"caption-attachment-125238\" class=\"wp-caption-text\">Connectez votre application Doppler \u00e0 Heroku.<\/figcaption><\/figure>\n<p>Puisque notre application est d\u00e9ploy\u00e9e sur Heroku, cliquons sur Heroku. Suivez les \u00e9tapes \u00e0 l&rsquo;\u00e9cran pour connecter votre compte Heroku \u00e0 Doppler et fournir les r\u00f4les d&rsquo;acc\u00e8s n\u00e9cessaires. Une fois qu&rsquo;il est connect\u00e9, vous atteindrez un \u00e9cran similaire :<\/p>\n<figure id=\"attachment_125239\" aria-describedby=\"caption-attachment-125239\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125239 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-integration-1024x574.png\" alt=\"Fournissez les d\u00e9tails de votre application pour l'int\u00e9grer \u00e0 Heroku.\" width=\"1024\" height=\"574\"><figcaption id=\"caption-attachment-125239\" class=\"wp-caption-text\">Fournissez les d\u00e9tails de votre application pour l&rsquo;int\u00e9grer \u00e0 Heroku.<\/figcaption><\/figure>\n<p>S\u00e9lectionnez le <strong>Project Type<\/strong>\u00a0comme <strong>App<\/strong>, choisissez votre application Heroku dans la liste des applis disponibles, choisissez stg comme <strong>Config \u00e0 synchroniser<\/strong>, et <strong>Do Not Import<\/strong> dans <strong>Import Options<\/strong>, puisque nous ne voulons pas importer de secrets de Heroku \u00e0 Doppler.<\/p>\n<p>Cliquez sur <strong>Set Up Integration<\/strong> lorsque vous avez termin\u00e9. Vous atteindrez un \u00e9cran similaire lorsque l&rsquo;int\u00e9gration est bien r\u00e9alis\u00e9e :<\/p>\n<figure id=\"attachment_125240\" aria-describedby=\"caption-attachment-125240\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125240 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/doppler-integration-heroku-1024x574.png\" alt=\"Les int\u00e9grations de votre application Doppler avec Heroku.\" width=\"1024\" height=\"574\"><figcaption id=\"caption-attachment-125240\" class=\"wp-caption-text\">Les int\u00e9grations de votre application Doppler avec Heroku.<\/figcaption><\/figure>\n<p>Maintenant, si vous v\u00e9rifiez la section <strong>Config Vars<\/strong> dans le tableau de bord de votre application Heroku, vous remarquerez que les variables de Doppler ont \u00e9t\u00e9 ajout\u00e9es automatiquement aux config vars de votre d\u00e9ploiement Heroku :<\/p>\n<figure id=\"attachment_125241\" aria-describedby=\"caption-attachment-125241\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125241 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-dopper-config-vars-1024x334.png\" alt=\"Les secrets de Doppler sont maintenant synchronis\u00e9s avec Heroku.\" width=\"1024\" height=\"334\"><figcaption id=\"caption-attachment-125241\" class=\"wp-caption-text\">Les secrets de Doppler sont maintenant synchronis\u00e9s avec Heroku.<\/figcaption><\/figure>\n<p>Vous remarquerez \u00e9galement que les deux variables d&rsquo;environnement originales (<code>environment<\/code> et <code>apiBaseUrl<\/code>) ont \u00e9t\u00e9 supprim\u00e9es. Cela s&rsquo;est produit parce que nous avons choisi <strong>Do Not Import<\/strong> sous <strong>Import Options<\/strong>. Vous pouvez aller de l&rsquo;avant et les ajouter \u00e0 nouveau dans Heroku si n\u00e9cessaire.<\/p>\n<p>Bien que la pr\u00e9sence des nouvelles variables d&rsquo;environnement dans la section <strong>Config Vars<\/strong> de Heroku d\u00e9montre que vous avez r\u00e9ussi \u00e0 configurer Doppler pour g\u00e9rer les secrets \u00e0 la fois localement dans votre environnement de d\u00e9veloppement et dans votre environnement de d\u00e9ploiement, vous pouvez continuer et d\u00e9ployer le code mis \u00e0 jour sur Heroku pour voir les changements dans l&rsquo;application d\u00e9ploy\u00e9e. Voici \u00e0 quoi cela ressemblera une fois termin\u00e9 :<\/p>\n<figure id=\"attachment_125242\" aria-describedby=\"caption-attachment-125242\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-125242 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/heroku-doppler-env-staging-apibaseurl-staging-myapi-com-dpenv-staging-1024x383.png\" alt=\"Acc\u00e8s aux secrets Doppler dans une application d\u00e9ploy\u00e9e sur Heroku.\" width=\"1024\" height=\"383\"><figcaption id=\"caption-attachment-125242\" class=\"wp-caption-text\">Acc\u00e8s aux secrets Doppler dans une application d\u00e9ploy\u00e9e sur Heroku.<\/figcaption><\/figure>\n<p>Ceci termine le tutoriel pour configurer les variables d&rsquo;environnement dans un projet Node.js en utilisant trois m\u00e9thodes populaires. Ensuite, voyons comment vous pouvez vous assurer que vos variables d&rsquo;environnement et leurs fichiers sont s\u00e9curis\u00e9s lorsqu&rsquo;ils sont utilis\u00e9s.<\/p>\n<h2>Comment assurer la s\u00e9curit\u00e9 des fichiers de variables d&rsquo;environnement<\/h2>\n<p>Bien que les variables d&rsquo;environnement soient une ressource utile dans les pratiques DevOps modernes, vous devez \u00eatre conscient des implications qu&rsquo;elles peuvent avoir en mati\u00e8re de s\u00e9curit\u00e9. Voici quelques conseils que vous pouvez utiliser pour garder vos fichiers de variables d&rsquo;environnement s\u00e9curis\u00e9s et \u00e0 l&rsquo;abri des regards indiscrets.<\/p>\n<h3>Gardez les fichiers env hors du contr\u00f4le de version<\/h3>\n<p>L&rsquo;une des choses les plus importantes que vous devez garder \u00e0 l&rsquo;esprit lorsque vous manipulez des secrets est de les garder hors du contr\u00f4le de version. Le contr\u00f4le de version est destin\u00e9 uniquement au suivi des modifications du code source de votre application. Tout ce qui entre dans un syst\u00e8me de contr\u00f4le de version y reste jusqu&rsquo;\u00e0 ce qu&rsquo;il soit supprim\u00e9 explicitement, et la plupart des membres de votre \u00e9quipe ont acc\u00e8s \u00e0 ces donn\u00e9es historiques \u00e0 des fins de r\u00e9f\u00e9rence.<\/p>\n<p>Si vous avez stock\u00e9 les cl\u00e9s de votre seau de stockage AWS ou d&rsquo;un service API payant dans un fichier env pour l&rsquo;utiliser dans votre application, vous ne souhaitez pas le partager avec l&rsquo;ensemble de votre \u00e9quipe de d\u00e9veloppement, sauf si elle doit y avoir acc\u00e8s. Si votre projet est en open source sur une <a href=\"https:\/\/kinsta.com\/fr\/blog\/base-de-connaissances-github\/\">plateforme comme GitHub<\/a>, ajouter des fichiers env \u00e0 votre VCS pourrait signifier le partager avec le monde entier ! Les fichiers env sont destin\u00e9s \u00e0 \u00eatre stock\u00e9s localement. Vous pouvez fournir \u00e0 chaque environnement de d\u00e9ploiement les fichiers env pertinents via des m\u00e9thodes d\u00e9di\u00e9es.<\/p>\n<p>Ajoutez toujours le fichier env \u00e0 votre fichier <strong>.gitignore<\/strong> (en supposant que vous utilisez git pour le contr\u00f4le de version) ou utilisez tout autre moyen pour que votre VCS ignore les fichiers env lors de la validation des modifications. Vous pouvez envisager d&rsquo;ajouter un fichier env mod\u00e8le \u00e0 votre VCS afin que tout autre membre de l&rsquo;\u00e9quipe puisse l&rsquo;utiliser comme r\u00e9f\u00e9rence pour cr\u00e9er ses fichiers env localement.<\/p>\n<h3>V\u00e9rifiez le nom du paquet avant l&rsquo;installation<\/h3>\n<p>Puisque vous installez g\u00e9n\u00e9ralement la plupart des paquets \u00e0 partir de NPM lorsque vous travaillez avec une application Node.js, vous devez faire tr\u00e8s attention en le faisant. Il est bien connu que n&rsquo;importe qui peut cr\u00e9er et d\u00e9ployer un paquet NPM. Et il n&rsquo;est pas non plus surprenant que les gens fassent souvent des erreurs en tapant le nom d&rsquo;un paquet qu&rsquo;ils veulent installer.<\/p>\n<p>De <a href=\"https:\/\/therecord.media\/another-set-of-malicious-npm-packages-caught-stealing-discord-tokens-environment-variables\/\" target=\"_blank\" rel=\"noopener noreferrer\">multiples cas<\/a> ont \u00e9t\u00e9 constat\u00e9s o\u00f9 des paquets malveillants portant des noms similaires \u00e0 certains paquets populaires ont \u00e9t\u00e9 accidentellement install\u00e9s par des utilisateurs en raison d&rsquo;erreurs de frappe. De tels paquets sont con\u00e7us pour acc\u00e9der aux variables d&rsquo;environnement de votre application et les envoyer via Internet \u00e0 leurs cr\u00e9ateurs.<\/p>\n<p>La seule fa\u00e7on de vous sauver est d&rsquo;\u00eatre vigilant lorsque vous installez de nouveaux paquets depuis l&rsquo;Internet.<\/p>\n<h3>Pr\u00e9f\u00e9rez les gestionnaires secrets aux fichiers env<\/h3>\n<p>Avec des probl\u00e8mes tels que les fuites accidentelles lors du partage et les erreurs de formatage, les fichiers env ne sont certainement pas la meilleure option disponible pour la gestion des secrets. Entrez dans les gestionnaires de secrets. Les gestionnaires de secrets tels que Doppler vous permettent d&rsquo;isoler compl\u00e8tement les secrets de votre application de votre code source et de les g\u00e9rer dans une plateforme d\u00e9di\u00e9e.<\/p>\n<p>Vous pouvez autoriser votre \u00e9quipe \u00e0 acc\u00e9der \u00e0 ces secrets directement sur la plateforme, et votre application peut y acc\u00e9der via des connexions crypt\u00e9es sur Internet. Il r\u00e9sout tous les probl\u00e8mes associ\u00e9s aux fichiers env tout en vous offrant la flexibilit\u00e9 de maintenir des ensembles de secrets bas\u00e9s sur les environnements de votre application.<\/p>\n<p>Cependant, il y a aussi des mises en garde. Les gestionnaires de secrets sont \u00e0 un stade tr\u00e8s pr\u00e9coce de leur d\u00e9veloppement technologique. De plus, les gestionnaires de secrets sont des plateformes tierces qui sont soumises \u00e0 leur propre s\u00e9rie de probl\u00e8mes de s\u00e9curit\u00e9. Il est donc important d&rsquo;\u00e9valuer et de s\u00e9lectionner soigneusement le bon gestionnaire de secrets. En outre, si votre application, son \u00e9quipe de d\u00e9veloppement ou le nombre de secrets de l&rsquo;application n&rsquo;est pas assez important, les gestionnaires de secrets peuvent \u00eatre superflus pour vous.<\/p>\n<h2>Tableau de r\u00e9f\u00e9rence des variables d&rsquo;environnement<\/h2>\n<p>Voici un aide-m\u00e9moire rapide qui vous permettra de vous familiariser rapidement avec les variables d&rsquo;environnement et leur utilisation :<\/p>\n<div class=\"\"responsive-table\">\n<table>\n<tbody>\n<tr>\n<td>D\u00e9finition des variables d&rsquo;environnement<\/td>\n<td>Variables fournies aux processus par leurs processus appelants<\/td>\n<\/tr>\n<tr>\n<td>Objectif<\/td>\n<td>\n<ul>\n<li>Stocker et s\u00e9curiser les secrets de l&rsquo;application<\/li>\n<li>G\u00e9rer les donn\u00e9es de configuration sp\u00e9cifiques \u00e0 l&rsquo;environnement<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td>Types<\/td>\n<td>Pour Windows uniquement :<\/p>\n<ul>\n<li>Syst\u00e8me<\/li>\n<li>Utilisateur<\/li>\n<li>Temps d&rsquo;ex\u00e9cution\/processus<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td>Exemples de cas d&rsquo;utilisation populaires<\/td>\n<td>\n<ul>\n<li>Cl\u00e9s priv\u00e9es<\/li>\n<li>Noms d&rsquo;environnement<\/li>\n<li>URL de base de l&rsquo;API, etc<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td>Comment les impl\u00e9menter dans votre application ?<\/td>\n<td>\n<ul>\n<li>fichiers .env<\/li>\n<li>Gestionnaires de secrets natifs de la plate-forme<\/li>\n<li>Service d\u00e9di\u00e9 \u00e0 la gestion des secrets<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Les variables d&rsquo;environnement sont importantes pour isoler les donn\u00e9es sensibles de votre application. Elles aident \u00e0 s\u00e9curiser les secrets de votre application et vous permettent de passer facilement d&rsquo;un ensemble de secrets \u00e0 un autre en fonction de l&rsquo;environnement de l&rsquo;application. Cependant, leur gestion ajoute une t\u00e2che suppl\u00e9mentaire.<\/p>\n<p>Il existe de multiples fa\u00e7ons de s\u00e9curiser les variables d&rsquo;environnement, comme nous l&rsquo;avons vu plus haut. Explorez-les toutes et trouvez celles qui conviennent le mieux \u00e0 votre projet et l&rsquo;acc\u00e9l\u00e8rent.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si vous avez travaill\u00e9 sur une forme quelconque de d\u00e9veloppement d&rsquo;applications, vous avez s\u00fbrement d\u00e9j\u00e0 entendu parler du terme \u00ab variables d&rsquo;environnement \u00bb. Les variables d&rsquo;environnement &#8230;<\/p>\n","protected":false},"author":238,"featured_media":59424,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[449,535,518],"topic":[1012],"class_list":["post-59423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-development","tag-javascript","tag-node-js","topic-conseils-techniques"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Variables d&#039;environnement : Ce qu&#039;elles sont et comment les utiliser<\/title>\n<meta name=\"description\" content=\"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu&#039;aux questions g\u00e9n\u00e9rales sur WordPress et le support.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Variables d&#039;environnement : Ce qu&#039;elles sont et comment les utiliser\" \/>\n<meta property=\"og:description\" content=\"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu&#039;aux questions g\u00e9n\u00e9rales sur WordPress et le support.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-11T07:01:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T19:45:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kumar Harsh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu&#039;aux questions g\u00e9n\u00e9rales sur WordPress et le support.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kumar Harsh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"39 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\"},\"author\":{\"name\":\"Kumar Harsh\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9\"},\"headline\":\"Variables d&rsquo;environnement : Ce qu&rsquo;elles sont et comment les utiliser\",\"datePublished\":\"2022-07-11T07:01:39+00:00\",\"dateModified\":\"2025-10-01T19:45:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\"},\"wordCount\":8143,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg\",\"keywords\":[\"development\",\"JavaScript\",\"node.js\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\",\"name\":\"Variables d'environnement : Ce qu'elles sont et comment les utiliser\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg\",\"datePublished\":\"2022-07-11T07:01:39+00:00\",\"dateModified\":\"2025-10-01T19:45:54+00:00\",\"description\":\"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu'aux questions g\u00e9n\u00e9rales sur WordPress et le support.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg\",\"width\":1460,\"height\":730,\"caption\":\"Variables d'environnement : Ce qu'elles sont et comment les utiliser\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Conseils techniques\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/conseils-techniques\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Variables d&rsquo;environnement : Ce qu&rsquo;elles sont et comment les utiliser\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9\",\"name\":\"Kumar Harsh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g\",\"caption\":\"Kumar Harsh\"},\"description\":\"Kumar is a software developer and a technical author based in India. He specializes in JavaScript and DevOps. You can learn more about his work on his website.\",\"sameAs\":[\"https:\/\/kumarharsh.me\"],\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/kumarharsh\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Variables d'environnement : Ce qu'elles sont et comment les utiliser","description":"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu'aux questions g\u00e9n\u00e9rales sur WordPress et le support.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/","og_locale":"fr_FR","og_type":"article","og_title":"Variables d'environnement : Ce qu'elles sont et comment les utiliser","og_description":"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu'aux questions g\u00e9n\u00e9rales sur WordPress et le support.","og_url":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2022-07-11T07:01:39+00:00","article_modified_time":"2025-10-01T19:45:54+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg","type":"image\/jpeg"}],"author":"Kumar Harsh","twitter_card":"summary_large_image","twitter_description":"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu'aux questions g\u00e9n\u00e9rales sur WordPress et le support.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Kumar Harsh","Dur\u00e9e de lecture estim\u00e9e":"39 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/"},"author":{"name":"Kumar Harsh","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9"},"headline":"Variables d&rsquo;environnement : Ce qu&rsquo;elles sont et comment les utiliser","datePublished":"2022-07-11T07:01:39+00:00","dateModified":"2025-10-01T19:45:54+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/"},"wordCount":8143,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg","keywords":["development","JavaScript","node.js"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/","url":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/","name":"Variables d'environnement : Ce qu'elles sont et comment les utiliser","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg","datePublished":"2022-07-11T07:01:39+00:00","dateModified":"2025-10-01T19:45:54+00:00","description":"La base de connaissances Kinsta permet de r\u00e9pondre \u00e0 toutes les questions, depuis les questions relatives au compte et \u00e0 la facturation jusqu'aux questions g\u00e9n\u00e9rales sur WordPress et le support.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2022\/07\/what-is-an-environment-variable.jpg","width":1460,"height":730,"caption":"Variables d'environnement : Ce qu'elles sont et comment les utiliser"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Conseils techniques","item":"https:\/\/kinsta.com\/fr\/sujets\/conseils-techniques\/"},{"@type":"ListItem","position":3,"name":"Variables d&rsquo;environnement : Ce qu&rsquo;elles sont et comment les utiliser"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9","name":"Kumar Harsh","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g","caption":"Kumar Harsh"},"description":"Kumar is a software developer and a technical author based in India. He specializes in JavaScript and DevOps. You can learn more about his work on his website.","sameAs":["https:\/\/kumarharsh.me"],"url":"https:\/\/kinsta.com\/fr\/blog\/author\/kumarharsh\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/59423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/238"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=59423"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/59423\/revisions"}],"predecessor-version":[{"id":59465,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/59423\/revisions\/59465"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/59423\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/59423\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/59423\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/59423\/translations\/fr"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/59423\/translations\/es"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/59423\/translations\/de"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/59423\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/59424"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=59423"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=59423"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=59423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}