Como faço para usar variáveis de ambiente de um shell de instância do Elastic Beanstalk?

2 minuto de leitura
0

Quero usar variáveis de ambiente de um shell de instância do AWS Elastic Beanstalk.

Breve descrição

No Elastic Beanstalk, as variáveis de ambiente não são expostas ao sistema operacional.

Para usar um utilitário com variáveis de ambiente do sistema operacional quando as variáveis de ambiente são definidas como variáveis de ambiente do Elastic Beanstalk, você deve usar uma extensão .ebextension que exporte as variáveis de ambiente para variáveis do sistema operacional.

A resolução a seguir mostra como:

1.    Use o utilitário get-config para ler suas variáveis de ambiente do Elastic Beanstalk.

2.    Use o utilitário jq (do site da jq) para transformar a saída get-config de JSON em variáveis shell.

3.    Salve as variáveis no arquivo /etc/profile.d/sh.local. Esse arquivo é lido pelo Bash para exportar variáveis para o sistema operacional.

Resolução

1.    Crie um arquivo .ebextension no pacote de origem do aplicativo e inclua o seguinte:

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

Observação: o arquivo de configuração na etapa 1 é chamado setvars.config.

2.    Salve o arquivo .ebextension e implante-o em seu ambiente do Elastic Beanstalk.

3.    Para testar se as variáveis estão sendo exportadas, conecte-se à sua instância usando SSH e execute o comando a seguir. Antes de testar, feche todas as sessões existentes e reconecte-se usando SSH.

env | grep VARIABLE_NAME

Importante: na etapa 3, defina VARIABLE_NAME como uma variável definida em seu ambiente.

A saída mostra se suas variáveis de ambiente estão definidas corretamente. No exemplo de saída a seguir, uma variável chamada RDS_PORT é definida no ambiente do Elastic Beanstalk.

$ env|grep RDS_PORT
RDS_PORT=3306

Observação: como você está usando os comandos na .ebextension, só pode atualizar o arquivo sh.local com uma nova implantação. Se você adicionar ou alterar uma variável no ambiente, deverá criar uma nova implantação antes que a variável seja exportada para o sistema operacional.


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos