Les variables d’environnement sont utiles pour alimenter votre application en informations provenant de l’extérieur de l’exécution de cette application. Elles sont généralement utilisées pour définir des éléments tels que les détails de connexion à la base de données et les clés API.

Variables d'environnement pour votre application.
Variables d’environnement pour votre application.

Ajout de variables d’environnement

Les variables d’environnement peuvent être ajoutées dans l’étape Détails de l’application quand vous ajoutez une application ou sur la page des réglages de votre application après le déploiement.

Caractères spéciaux dans les variables d’environnement

Les variables d’environnement sont appliquées littéralement, à l’exception des virgules, des parenthèses et des guillemets doubles.

Les virgules sont interprétées comme des délimiteurs et ne peuvent pas être utilisées dans les variables d’environnement. Selon le moment où elles sont disponibles lors du déploiement, les parenthèses peuvent faire échouer le processus de construction ou de déploiement ; elles ne peuvent donc pas être utilisées dans les variables d’environnement.

Les guillemets doubles non encapsulés sont ignorés ou font échouer le processus de déploiement.

  • Voici un exemple : « my_example_variable » sera appliqué en tant que : my_example_variable.
  • Si des guillemets doubles se trouvent à l’intérieur d’une chaîne de caractères (par exemple, my_exampl"e_text), le processus de déploiement échouera.
  • Pour conserver les guillemets doubles autour d’une variable, échappez-les avec une barre oblique inverse (\). Par exemple : \"my_example_var\" sera appliqué sous la forme suivante : "my_example_var".
  • Les guillemets doubles à l’intérieur des chaînes de caractères peuvent également être traités par l’échappement, de sorte que le processus de déploiement puisse être achevé. Par exemple : my_examp\"le_var sera appliqué en tant que : my_examp "le_var.

Variables encodées en Base64

Si votre variable d’environnement est encodée en Base64 et que vous rencontrez des problèmes (par exemple, des erreurs 500 dans le navigateur, des erreurs de construction, des erreurs de temps d’exécution, etc.), essayez de mettre la valeur de la variable entre guillemets simples.

Dans les détails de l’application

Pour ajouter des variables d’environnement quand vous ajoutez votre application, développez la section Variables d’environnement, saisissez les paires clé-valeur et sélectionnez si les variables doivent être disponibles pendant le temps d’exécution et/ou le processus de construction.

Ajoutez les détails de l'application
Ajoutez les détails de l’application.

Après le déploiement

Pour ajouter des variables d’environnement après le déploiement, accédez à la page des réglages de votre application, faites défiler la page jusqu’à la section Variables d’environnement, puis cliquez sur Ajouter une variable d’environnement. Ajoutez les paires clé-valeur dans la fenêtre modale/popup Ajouter une variable d’environnement et sélectionnez si les variables doivent être disponibles pendant le temps d’exécution et/ou le processus de construction.

Ajouter une paire clé-valeur de variable d'environnement.
Ajouter une paire clé-valeur de variable d’environnement.

Modifier les variables d’environnement

Vous pouvez modifier les noms (clés) ou les valeurs des variables dans la page Réglages. Pour modifier une variable, cliquez sur l’icône Modifier (crayon), apportez vos modifications et cliquez sur Terminer la modification.

Quand vous créez une connexion interne et que vous sélectionnez la case à cocher Ajouter des variables d’environnement…, les noms des variables (clés) sont automatiquement créés. Certaines applications peuvent s’attendre à ce que les variables d’environnement portent des noms différents. Par exemple, si vous souhaitez utiliser une base de données avec Laravel, le fichier database.php contient des noms de variables différents de ceux créés automatiquement dans MyKinsta. Pour utiliser les noms de variables définis dans l’application, modifiez chaque variable si nécessaire et changez la clé pour qu’elle corresponde à ce qui est défini dans le fichier database.php.

Utilisation des variables d’environnement

La façon dont vous utilisez les variables d’environnement dépend de votre application. Dans Node, par exemple, vous pouvez accéder à une variable nommée API_KEY avec process.env.API_KEY. En PHP, vous utiliseriez getenv('API_KEY').

Connexions internes et processus de construction

Les connexions internes sont uniquement disponibles pendant le temps d’exécution ; elles ne le sont pas pendant le processus de construction.

Si votre application tente de se connecter à une base de données à l’aide d’une connexion interne pendant le processus de construction, une erreur se produit, qui dit que la base de données n’est pas exécutée, ce qui fait échouer la construction. C’est normal, car la connexion interne n’est pas en production pendant la construction ; elle peut uniquement être utilisée pendant le temps d’exécution.

Il existe plusieurs façons de contourner ce problème.

Option 1 : Déplacez la logique de connexion à la base de données depuis la commande de construction de l’application vers la commande de démarrage. Par exemple : si vous avez une commande comme prisma migrate dans le processus de construction et que vous déplacez cette commande vers la commande de démarrage, votre application accèdera uniquement à la base de données pendant le temps d’exécution, et la construction sera réussie.

Option 2 : Ajoutez des variables d’environnement distinctes pour la connexion à la base de données, l’une disponible pour le processus de construction, et l’autre uniquement pour l’exécution. Les clés peuvent être les mêmes (par exemple DB_CONNECTION_URL) tant que l’une est disponible uniquement pendant le processus de construction et l’autre uniquement pendant le temps d’exécution. Utilisez les détails de la connexion externe de la base de données (Bases de données > dbname > Info > Connexions externes) pour les valeurs des variables à utiliser dans le processus de construction.

Variables d’environnement définies par Kinsta

Kinsta définit toujours PORT comme le port utilisé par le serveur web. Si vous souhaitez que votre application interagisse avec le serveur web, vous devrez utiliser cette variable d’environnement. Par exemple, dans Node.js, voici comment vous démarrez un serveur :

app.listen(process.env.PORT, () => {
console.log("Weather server is up and running")
})

Variables d’environnement non configurées par Kinsta

Par défaut, la variable d’environnement NODE_ENV n’est pas configurée en production pour les applications Node.js ; vous devez ajouter cette variable d’environnement manuellement.

Exemples de langage pour les variables d’environnement

La façon dont vous utilisez les variables d’environnement dépend de votre application. Le tableau suivant affiche comment appeler une variable d’environnement nommée API_KEY dans différents langages :

Language Code
Ruby ENV["API_KEY"]
Node.js process.env.API_KEY;
Python os.environ.get('API_KEY')
Java System.getenv("API_KEY");
Scala System.getenv("API_KEY");
PHP getenv('API_KEY');
Go os.Getenv("API_KEY")

Documentation similaire