Команды ebextensions для конкретной среды
У меня есть приложение весенней загрузки, для которого мне нужно указать сервер и порт графита (для отправки метрик). Чтобы это работало, я должен установить и настроитьstatsd
, Я делаю это, используяebextensions
файл.
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
Проблема с этой конфигурацией состоит в том, что я могу указать здесь только 1 графитовый сервер для всех сред.
Поэтому я решил переместить команды 04 и 05 вcontainer_commands
, Я думаю об определении переменной среды под названиемENV_NAME
используя консоль beanstalk / пользовательский интерфейси установите его вdev
, qa
, или жеprod
в соответствии с окружающей средой. Тогда я могу использоватьtest
вариантcontainer_commands
запускать команды 04 и 05 только для конкретной среды на основе этогоENV_NAME
.
Итак, моя проблема - как я могу использовать консоль AWS для определения переменной среды? Я попытался использовать консоль Benastalk для определения моей переменной, как описано в документацииВот но это не сработало. Я такженайденный (см. ответ с 5 ответами), что этот метод устанавливает только свойства JVM, а не переменные ENV.
Я не могу определить переменную среды, используяebextensions
потому что тогда у меня будет та же проблема - я не могу определить разные переменные env для разных envs :)
Так что мне нужна помощь с:
УстановитьENV_NAME
переменная окружения с использованием beanstalk UI.Или же
Предложите способ использованияENV_NAME
системное свойство вcontainer_commands
обусловить, следует ли запускать команду на основе значенияENV_NAME
.И если вы знаете более простой / лучший способ указать разные серверы Graphite для разных сред, пожалуйста, не стесняйтесь.