¿Cómo utilizo las variables de entorno de un shell de instancias de Elastic Beanstalk?

2 minutos de lectura
0

Quiero utilizar variables de entorno de un shell de instancias de AWS Elastic Beanstalk.

Descripción breve

En Elastic Beanstalk, las variables de entorno no están expuestas al sistema operativo.

Para usar una utilidad con variables de entorno del sistema operativo cuando las variables de entorno están configuradas como variables de entorno de Elastic Beanstalk, debe utilizar una .ebextension que exporte las variables de entorno a variables del sistema operativo.

En la siguiente resolución se muestra cómo hacerlo:

  1. Utilice la utilidad get-config para leer las variables de entorno de Elastic Beanstalk.

  2. Utilice la utilidad jq (del sitio web de jq) para transformar el resultado get-config de JSON en variables de shell.

  3. Guarde las variables en el archivo /etc/profile.d/sh.local. Bash lee este archivo para exportar variables al sistema operativo.

Resolución

  1. Cree un archivo .ebextension en el paquete fuente de la aplicación e incluya lo siguiente:
commands:
    setvars:
        command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local
packages:
    yum:
        jq: []

Nota: El archivo de configuración del paso 1 se denomina setvars.config.

  1. Guarde el archivo .ebextension y, a continuación, despliéguelo en el entorno de Elastic Beanstalk.

  2. Para comprobar si las variables se están exportando, conéctese a la instancia mediante SSH y, a continuación, ejecute el siguiente comando. Antes de llevar a cabo la prueba, cierre todas las sesiones actuales y vuelva a conectarse mediante SSH.

env | grep VARIABLE_NAME

Importante: Para el paso 3, defina VARIABLE_NAME en una variable definida en su entorno.

En el resultado se muestra si las variables de entorno están configuradas correctamente. En el siguiente ejemplo de resultado, se define una variable denominada RDS_PORT en el entorno de Elastic Beanstalk.

$ env|grep RDS_PORT
RDS_PORT=3306

Nota: Como utiliza los comandos de .ebextension, solo puede actualizar el archivo sh.local con un nuevo despliegue. Si agrega o cambia una variable en el entorno, debe crear un nuevo despliegue antes de que la variable se exporte al sistema operativo.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años