【问题标题】:AWS Elastic Beanstalk environment variables overriding at the EB application level在 EB 应用程序级别覆盖 AWS Elastic Beanstalk 环境变量
【发布时间】:2016-03-13 00:18:42
【问题描述】:

我目前在同一个 Elastic Beanstalk“应用程序”内的两个不同“环境”上运行同一个 NodeJS Sails 应用程序(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

【问题讨论】:

  • 环境变量是每个环境的,不会相互覆盖。你能贴吗?发出eb list 以查看您实际上已将两者分开。您帖子中的唯一问题是您忘记在eb setenv 命令中添加目标环境。但话又说回来,使用 Web 界面应该可以工作。
  • 谢谢,我已添加此信息。我认为当我配置 EB CLI 时,我选择了一个特定的“环境”来使用,但我肯定会尝试使用 [-e environment] 标志并让您知道。

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


【解决方案1】:

事实证明,之所以会出现这个问题,是因为 AWS Web 界面跟不上我所做的更改。环境变量没有被覆盖。注销并重新登录为我解决了这个问题。

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

【讨论】:

    猜你喜欢
    • 2015-08-05
    • 2019-12-21
    • 2015-03-25
    • 2020-09-29
    • 2018-04-27
    • 2016-12-10
    • 2016-07-30
    • 2012-12-21
    • 2012-12-13
    相关资源
    最近更新 更多