Comandos ebextensions específicos do ambiente

Eu tenho um aplicativo de inicialização por mola para o qual preciso especificar servidor e porta de grafite (para enviar métricas). Para que isso funcione, eu tenho que instalar e configurarstatsd. Eu faço isso usando oebextensions Arquivo.

commands:
  01_nodejs_install:
    command: sudo yum -y install nodejs npm --enablerepo=epel
    ignoreErrors: true

  02_mkdir_statsd:
    command: mkdir /home/ec2-user/statsd
    ignoreErrors: true

  03_fetch_statsd:
    command: git clone https://github.com/etsy/statsd.git /home/ec2-user/statsd
    ignoreErrors: true

  04_change_example_config:
    command: "cat exampleConfig.js | sed 's/2003/<graphite-port>/g' | sed 's/graphite.example.com/<my-graphite-server>/g' > config.js"
    cwd: /home/ec2-user/statsd

  05_run_statsd:
    command: setsid node stats.js config.js >/dev/null 2>&1 < /dev/null &
    cwd: /home/ec2-user/statsd

O problema com esta configuração é que eu posso especificar apenas 1 servidor de grafite aqui para todos os ambientes.

Então eu decidi mover os comandos 04 e 05 paracontainer_commands. Estou pensando em definir uma variável de ambiente chamadaENV_NAME usando o console / UI do beanstalke defina-o comodev, qaouprod de acordo com o meio ambiente. Então eu posso usartest opção decontainer_commands para executar comandos 04 e 05 apenas para um ambiente específico com base nesteENV_NAME.

Portanto, meu problema é: como posso usar o console da AWS para definir variáveis de ambiente? Tentei usar o console Benastalk para definir minha variável, conforme explicado na documentaçãoaqui mas não funcionou. eu tambémencontrado (consulte a resposta com 5 upvotes) que esse método define apenas propriedades da JVM e não variáveis ENV.

Não consigo definir variável de ambiente usandoebextensions porque então eu vou ter o mesmo problema - não é possível definir diferentes ambientes para diferentes ambientes :)

Então, preciso de ajuda com:

Colocou oENV_NAME variável de ambiente usando a interface do usuário do beanstalk.

Ou

Sugira uma maneira de usarENV_NAME propriedade do sistema emcontainer_commands para condicionar a execução ou não do comando com base no valor deENV_NAME.

E caso você saiba uma maneira mais simples / melhor de especificar diferentes servidores Graphite para diferentes ambientes, sinta-se à vontade para participar.

questionAnswers(3)

yourAnswerToTheQuestion