Назад | Перейти на главную страницу

Как просмотреть переменные среды с префиксом RDS_ в AWS ElasticBeanstalk?

Если вы настроили RDS с помощью ElasticBeanstalk, как вы можете войти в поле (через eb ssh) и просмотреть переменные среды, которые устанавливаются при применении RDS к своему экземпляру EB?

Amazon автоматически устанавливает эти переменные среды.

Кажется, что вы можете просматривать только в процессе, который запускает ваше приложение.

Я бы хотел как-нибудь просмотреть их через терминал, eb printenv команда не показывает их.

Вот как это сделать.

Первый ssh в экземпляр eb.

eb ssh

Затем выполните следующую команду

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

Альтернативно --output YAML возможно --output json.

Или, если вы хотите, вы можете передать переменные в команду узла следующим образом:

#!/usr/bin/env node
var strings = []
process.stdin.resume()
process.stdin.setEncoding('utf8')
process.stdin.on('data', function(data) {
  var json = JSON.parse(data)
  for (var key in json) {
    var val = json[key]
    strings.push(key + '="' + val + '"')
  }
})
process.stdin.on('end', function() {
  var output = strings.join('\n')
  process.stdout.write(output)
})

И использовать source иметь .ebextension скрипты получают доступ к переменным env.

Просто.

Вам следует перейти к конфигурациям среды текущего приложения, выполняемого через ваш эластичный beanstalk.

Сначала ssh в экземпляр эластичного beanstalk, как в приведенном выше ответе.

ssh eb

Если вы хотите показать переменные среды, связанные с RDS (например, RDS_DB_NAME), затем

cat /opt/python/current/env

Вы также увидите некоторые переменные aws:elasticbeanstalk:application:environment в option_settings вместе, набранные ранее.

Кроме того, если вы хотите применить эти переменные среды,

source /opt/python/current/env

И вы можете увидеть эти переменные, написав env

Вот моя версия, которая добавляет вары в текущий сеанс

sudo /opt/elasticbeanstalk/bin/get-config environment --output yaml | sed -n '1!p' | sed -e 's/^\(.*\): /\1=/g' | sed -e 's/^/export /' > env.sh; source env.sh

Он сбрасывает временный файл, но работает.