Variables d’environnement
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.
Caractères spéciaux dans les variables d’environnement
Dans les clés des variables d’environnement, vous pouvez uniquement utiliser les caractères a-z, 0-9 ou l’underscore (_
). Les valeurs des variables d’environnement sont appliquées littéralement, à l’exception des parenthèses, des virgules et des guillemets doubles.
Parenthèses
Les parenthèses peuvent faire échouer le processus de construction ou de déploiement, selon le moment où elles sont disponibles lors du déploiement. Elles ne peuvent pas être utilisées dans les variables d’environnement.
Virgules
Les virgules non encapsulées sont interprétées comme des délimiteurs et ne peuvent pas être utilisées dans les variables d’environnement.
- Par exemple :
write_stock,read_orders
entraînera l’échec du processus de déploiement. - Pour conserver une virgule à l’intérieur d’une chaîne, échappez-la avec une barre oblique inverse (
\
) comme ceci :write_stock,read_orders
– qui sera appliqué commewrite_stock,read_orders
.
Guillemets doubles
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
. - Pour conserver les guillemets doubles autour d’une variable, échappez-les avec une barre oblique inverse (
\
) comme ceci :\"my_example_var\"
– qui sera appliqué comme"my_example_var"
. - 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 à l’intérieur d’une chaîne, échappez-les avec une barre oblique inverse (
\
) comme ceci :my_examp\"le_var
– qui sera appliqué commemy_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.
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 Réglages de votre application après le déploiement.
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.
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.Cliquez sur Déployer les modifications pour ajouter vos variables et redéployer automatiquement l’application.
Modifier les variables d’environnement
Vous pouvez modifier les noms (clés) ou les valeurs des variables sur la page Réglages. Pour modifier une variable, cliquez sur l’icône Modifier (crayon), apportez vos modifications et cliquez sur Déployer les modifications pour mettre à jour vos variables et redéployer automatiquement l’application.
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") |