AWS Elastic Beanstalk环境变量覆盖EB应用程序级别

时间:2015-12-08 06:56:54

标签: node.js amazon-web-services elastic-beanstalk environment amazon-elastic-beanstalk

我目前正在两个不同的环境中运行相同的NodeJS Sails应用程序"在同一个Elastic Beanstalk"应用程序" (引用中的AWS特定术语)。我的目的是为了这些"环境"作为舞台和制作。 Sails提供了一种基于环境变量NODE_ENV交换配置的内置方法。但是,当我在一个环境中设置环境变量时,"它会覆盖另一个的价值。

我尝试使用AWS CLI命令eb setenv NODE_ENV="environment_name"以及使用Web界面。 (有问题的设置位于"环境属性"标题下的Application > Environment > Configuration > Software Configuration

我一直在尝试搜索这个问题,但我一直很难找到任何具体解决它的问题。像the selected one here这样的答案暗示我可以做我正在寻找的事情。

我设置此变量的方式有问题吗?我是否误解了Elastic Beanstalk如何处理这些设置?我知道我也可以通过更改不同部署的.ebextensions文件来设置环境变量,但我更喜欢更清晰的修复。

根据要求,以下是eb statuseb list的输出(已替换实际应用程序名称):

$ eb status
  Environment details for: app-staging
  Application name: app
  Region: us-east-1
  Deployed Version: 1.1.0
  Environment ID: e-fxxxxxxxxx
  Platform: 64bit Amazon Linux 2015.03 v2.0.1 running Node.js
  Tier: WebServer-Standard
  CNAME: app-staging.elasticbeanstalk.com
  Updated: 2015-12-08 03:54:37.894000+00:00
  Status: Ready
  Health: Green

$ eb list
app-production
* app-staging

1 个答案:

答案 0 :(得分:0)

事实证明这个问题正在发生,因为AWS Web界面无法跟上我所做的更改。环境变量未被覆盖。退出并重新为我修复此内容。

我注意到,一般来说,AWS上的许多感知问题都可能以这种方式解决。