Мне нужно использовать значения переменных среды Amazon elastic beanstalk для локальной разработки, но я не хочу, чтобы они жестко закодировались, когда я выполняю отправку кода.
Я хотел бы запустить сценарий bash для установки переменных, и вот как я это делаю с Heroku:
echo "... SETTING DATABASE_URL"
export DATABASE_URL=$(heroku config:get DATABASE_URL)
С эластичным бобовым стеблем я могу получить список переменных окружения с помощью:
eb printenv <name of environment>
Я пробовал использовать grepping только для значения, например.
eb printenv my-environment | grep DB_NAME
... но это возвращает всю строку, и мне просто нужно значение. Итак, попробовал grepping с регулярным выражением, и он ничего не вернет, например.
eb printenv my-environment | grep '/(?s)(?<=DB_NAME).+/'
Это простой запрос с регулярным выражением, и он отлично работает на regex101.com, поэтому не уверен, в чем может быть проблема.
Есть идеи о том, как получить конкретные пары значений ключа?
Вы можете попробовать что-то вроде этого
# eb printenv | grep RAILS_ENV
RAILS_ENV = production
# eb printenv | grep RAILS_ENV | awk '{print $3}'
production
Так что в вашем случае это было бы
DATABASE_URL=$(eb printenv | grep DATABASE_URL | awk '{print $3}')