Comandos ebextensions específicos del entorno
Tengo una aplicación de arranque por resorte para la que necesito especificar el servidor de grafito y el puerto (para enviar métricas). Para que eso funcione, tengo que instalar y configurarstatsd
. Lo hago usando elebextensions
archivo.
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
El problema con esta configuración es que aquí solo puedo especificar 1 servidor de grafito para todos los entornos.
Así que decidí mover los comandos 04 y 05 acontainer_commands
. Estoy pensando en definir una variable de entorno llamadaENV_NAME
usando la consola / interfaz de usuario de beanstalky configúrelo endev
, qa
oprod
Según el entorno. Entonces puedo usartest
opción decontainer_commands
ejecutar comandos 04 y 05 solo para entornos específicos basados en estoENV_NAME
.
Entonces, mi problema es: ¿cómo puedo usar la consola de AWS para definir la variable de entorno? Intenté usar la consola de Benastalk para definir mi variable como se explica en la documentaciónaquí Pero no funcionó. Yo tambiénencontró (vea la respuesta con 5 votos a favor) de que este método establece solo propiedades JVM y no variables ENV.
No puedo definir la variable de entorno usandoebextensions
porque entonces tendré el mismo problema: no puedo definir diferentes entornos para diferentes entornos :)
Entonces necesito ayuda con:
Selecciona elENV_NAME
variable de entorno utilizando beanstalk UI.O
Sugerir una forma de usarENV_NAME
propiedad del sistema encontainer_commands
para condicionar si ejecutar o no el comando en función del valor deENV_NAME
.Y en caso de que conozca una forma más simple / mejor de especificar diferentes servidores Graphite para diferentes entornos, no dude en participar.