我目前正在两个不同的环境中运行相同的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 status
和eb 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
答案 0 :(得分:0)
事实证明这个问题正在发生,因为AWS Web界面无法跟上我所做的更改。环境变量未被覆盖。退出并重新为我修复此内容。
我注意到,一般来说,AWS上的许多感知问题都可能以这种方式解决。