Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting NODE_ENV variable in elasticbeanstalk

I've created a file called .elasticbeanstalk/environment.config with the following in it:

option_settings:
  - option_name: NODE_ENV
    value: development

I'm also passing the process.env.NODE_ENV to the view so I can check the value

app.get('/', function(req, res) {
  var data = {
    env: process.env.NODE_ENV
  }
  res.render('upload',data);
});

On my local machine I get the value "local" which is what I've set it to. When I deploy to Amazons Elastic Beanstalk via $ git aws.push the value is empty.

Is there anything else I need to do for EB to recognise the NODE_ENV setting?

like image 553
Andy Jarrett Avatar asked Sep 24 '14 08:09

Andy Jarrett


People also ask

What is NODE_ENV variable?

NODE_ENV is an environment variable that stands for node environment in express server. The NODE_ENV environment variable specifies the environment in which an application is running (usually, development or production).

How do you print the value of an environment variable NODE_ENV in node JS?

Use echo $NODE_ENV . The command line is a shell, probably bash and that's the bash syntax to print the value of an environment variable.

Does jest set NODE_ENV?

Jest automatically defines environment variable NODE_ENV as test (see https://jestjs.io/docs/environment-variables), as you can confirm from your error message: console.


2 Answers

Your .config file should be located in the .ebextensions directory, not .elasticbeanstalk.

Try it then, if that doesn't work, you can always use the console.

In the meantime, you can always use the Elastic Beanstalk Console which let's you add environment variables from its interface. To do so, just:

  1. Open up your environment.
  2. You'll see Dashboard, Configuration, Logs and more on the left. Click the Configuration link.
  3. Then click the gear icon next to the Software Configuration block.
  4. Scroll down and add a key/value for the Environment Properties.
like image 142
Josh Davis Avatar answered Sep 16 '22 18:09

Josh Davis


Other ways to set environment variables in elastic beanstalk are -

  1. Create a config file in .ebextensions directory like environmentalvar.config and define variables in option_settings and include this file into application bundle. (Aws Documentation)

    example -

    option_settings:
         aws:elasticbeanstalk:application:environment:
           NODE_ENV: production
    
  2. By using elastic beanstalk command line tool. Command for set variable-

    eb setenv VAR_NAME=VAR_VALUE

like image 26
Karan Avatar answered Sep 16 '22 18:09

Karan