How do I view the RDS_ prefixed environment variables in AWS ElasticBeanstalk?
Solution 1:
Here's how to do it.
First ssh
into the eb instance.
eb ssh
Then un the following command
sudo /opt/elasticbeanstalk/bin/get-config environment --output YAML
Alternatively --output YAML
can be --output json
.
Or if you want you can pipe the variables into a node command like this:
#!/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)
})
And use source
to have .ebextension
scripts get access to the env variables.
Solution 2:
Just Simple.
You should go to environment configurations of the current application being running over your elastic beanstalk.
First ssh into the elastic beanstalk instance like the above answer.
ssh eb
If you wanna show the environment variables related to RDS (like RDS_DB_NAME
), then
cat /opt/python/current/env
You will also see some variables of aws:elasticbeanstalk:application:environment
in option_settings
together, typed before.
Additionally, if you want to apply that environment variables,
source /opt/python/current/env
And you can see those variables by scripting env
Solution 3:
Here's my version that adds the vars to the current session
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
It drops a temp file, but it works.