How to set environment variables in Elastic Beanstalk

Now, there are 2 ways of doing this: through the AWS Console and through the Elastic Beanstalk config files.

Using AWS Console

Go to the Elastic Beanstalk environment where you want to set environment variables. From the left pane, select ‘Configuration’ and click on ‘Edit’ next to the ‘Software’ option.

Scroll to the bottom. You will see the ‘Environment Properties’ section. You can enter the key value pairs for your environment variables in this section.

When you are done, click on ‘Apply’ and the Environment will be rebuilt with the changes applied.

Using Config Files

If you don’t want to use the console, you can pass in Environment variables in a config file. These need to be passed in option_settings, under the aws:elasticbeanstalk:application:environment namespace. For example, the same settings above can be applied using the config file as follows:

option_settings:
  aws:elasticbeanstalk:application:environment:
    GOOGLE_APPLICATION_CREDENTIALS: serviceAccount.json
    NODE_ENV: dev

The config file needs to be within the .ebextensions directory. You can have multiple files, and they are parsed in the lexicographic order.

Once the config file is created and the code is deployed (either through eb-cli or through Code Pipeline), you will be able to see the environment variables in the ‘Software’ section in the configuration tab.

Reading environment variables

For reading environment variables in your application code, you need to follow the platform specific syntax. For example, on Nodejs, you would read the NODE_ENV environment variable as follows:

var node_env = process.env.NODE_ENV

Similarly, in Python, you would access the variable as follows:

import os
node_env = os.environ.get('NODE_ENV')

I hope you liked this article. For more tutorials on AWS, check out https://iotespresso.com/category/aws/. Also, if you are planning to become a certified AWS Solutions Architect, I’d recommend that you check out this course on Udemy. I took this course and found the lectures to be lucid, to-the-point, and fun. I hope they will help you as well.

Leave a comment

Your email address will not be published. Required fields are marked *