Comment utiliser les variables d'environnement d'un shell d'instance Elastic Beanstalk ?

Lecture de 2 minute(s)
0

Je veux utiliser des variables d'environnement d'un shell d'instance AWS Elastic Beanstalk.

Brève description

Dans Elastic Beanstalk, les variables d'environnement ne sont pas exposées au système d'exploitation.

Pour utiliser un utilitaire avec des variables d'environnement du système d'exploitation et que les variables d'environnement sont définies en tant que variables d'environnement Elastic Beanstalk, vous devez utiliser une extension .ebextension qui exporte les variables d'environnement vers des variables de système d'exploitation.

La résolution suivante vous montre comment :

1.    Utilisez l'utilitaire get-config pour lire vos variables d'environnement Elastic Beanstalk.

2.    Utilisez l'utilitaire jq (du site Web jq) pour transformer la sortie get-config de JSON en variables shell.

3.    Enregistrez les variables dans le fichier /etc/profile.d/sh.local. Ce fichier est lu par Bash pour exporter des variables vers le système d'exploitation.

Résolution

1.    Créez un fichier .ebextension dans votre ensemble source d'application et incluez les éléments suivants :

commands:
    setvars:
        command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local
packages:
    yum:
        jq: []

Remarque : Le fichier de configuration de l'étape 1 s'appelle setvars.config.

2.    Enregistrez le fichier .ebextension, puis déployez-le dans votre environnement Elastic Beanstalk.

3.    Pour tester si les variables sont en cours d'exportation, connectez-vous à votre instance à l'aide du protocole SSH, puis exécutez la commande suivante. Avant de tester, fermez toutes les sessions existantes, puis reconnectez-vous à l'aide du protocole SSH.

env | grep VARIABLE_NAME

Important : pour l'étape 3, définissez VARIABLE_NAME sur une variable définie dans votre environnement.

La sortie indique si vos variables d'environnement sont définies correctement. Dans l'exemple de sortie suivant, une variable appelée RDS_PORT est définie dans l'environnement Elastic Beanstalk.

$ env|grep RDS_PORT
RDS_PORT=3306

Remarque : étant donné que vous utilisez les commandes de .ebextension, vous ne pouvez mettre à jour le fichier sh.local qu'avec un nouveau déploiement. Si vous ajoutez ou modifiez une variable dans l'environnement, vous devez créer un déploiement avant que la variable ne soit exportée vers le système d'exploitation.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans