Переменные среды Elastic Beanstalk отсутствуют в SSH - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь запустить некоторые команды в моем приложении NodeJS, которые необходимо запустить через SSH (например, Sequelize seeding), но когда я это сделал, я заметил, что ожидаемые env-переменные отсутствовали.

Если я запускаю eb printenv на своем локальном компьютере, я вижу ожидаемые переменные среды, которые были установлены на моей информационной панели EB

Если я запускаю SSH и запускаю printenv, все эти переменные, которые я ожидаю, отсутствуют.

Итак, что происходит, когда я запускаю свои семена, я получаю ошибку:

node_modules/.bin/sequelize db:seed:all
ERROR: connect ECONNREFUSED 127.0.0.1:3306

Я заметил, что порт был неправильным, он должен быть 5432. Я проверил, если мойпеременные окружения были установлены с printenv, и их там нет.Это заставляет меня подозревать, что надлежащие переменные env не загружаются в моем сеансе ssh, и NodeJS возвращается к значениям по умолчанию, которые я указал в моей конфигурации.

Я нашел некоторые решения в Интернете, например, выполняя следующее длязагрузить переменные env:

/opt/python/current/env

Но каталог python не существует.Все, что находится внутри /opt/, это каталоги elasticbeanstalk и aws.

Я добился некоторого успеха, чтобы хотя бы увидеть, что переменные env существуют где-то на сервере, выполнив следующее:

sudo /opt/elasticbeanstalk/bin/get-config environment --output YAML

Но простой запуск этой команды не решает проблему.Все, что он делает, это выводит ожидаемые переменные env на экран.Это что-то!По крайней мере, я знаю, что они точно есть!Но при запуске printenv

переменных env по-прежнему нет, так как мне решить эту проблему?Sequelize и NodeJS явно не видят переменные env, и они пытаются использовать запасные значения по умолчанию, которые установлены в моем конфигурационном файле.

...