节点和 Elastic Beanstalk:设置环境 NODE_ENV=prod

Posted

技术标签:

【中文标题】节点和 Elastic Beanstalk:设置环境 NODE_ENV=prod【英文标题】:Node & Elastic Beanstalk: Set environment NODE_ENV=prod 【发布时间】:2015-07-30 06:03:38 【问题描述】:

生产环境需要执行如下命令:

NODE_ENV=production node app.js

我尝试将它作为配置下的命令传递:

我在日志中收到以下错误:

sh: NODE_ENV=prod node app.js: command not found

我也试过了:

NODE_ENV=prod  // 
error: sh: NODE_ENV=prod: command not found


NODE_ENV=prod app.js  // 
error: sh: NODE_ENV=prod app.js: command not found

在 ELB 上启动应用程序时执行以下命令的最佳方法是什么:

NODE_ENV=production node app.js

【问题讨论】:

【参考方案1】:

您不需要手动设置节点命令。 Elastic Beanstalk 尝试依次启动 app.jsserver.jsnpm start。您可以在“配置”下的“环境属性”部分设置NODE_ENV 的值。

【讨论】:

我已经这样做了,但它不起作用。它被覆盖为“生产”【参考方案2】:

正如其他人所提到的,您可以通过转到配置 -> 软件 -> 环境属性来手动添加它们。

第二种方法是添加一个.ebextensions/environment.config 文件。

    在项目的根目录下添加目录.ebextensions。 在.ebextensions 中创建文件environment.config。 添加您的环境配置。

environment.config 的例子:

option_settings:
  - option_name: NODE_ENV
    value: production

【讨论】:

在我看来,正如您所指出的,最好在配置文件中跟踪此类内容。该案例在技术上已经赢得了对配置 + 基础架构的压倒性支持,即具有 cloudformation 和 terraform 等的代码。 我已经这样做了,但它不起作用。它被覆盖为“生产”【参考方案3】:

您需要使用“环境属性”而不是节点命令。

Key: NODE_ENV
Value: production

【讨论】:

我已经这样做了,但它不起作用。它被覆盖为“生产”【参考方案4】:

我只需在同一配置区域下的环境属性中设置NODE_ENV。您也可以在 .ebextensions 配置中进行设置。

【讨论】:

我已经这样做了,但它不起作用。它被覆盖为“生产” @snehanshu.js 与其评论每个人的答案,不如发布一个新问题以及详细信息。

以上是关于节点和 Elastic Beanstalk:设置环境 NODE_ENV=prod的主要内容,如果未能解决你的问题,请参考以下文章

用于节点 64 位和环境的 Amazon Elastic Beanstalk .config

Elastic Beanstalk 预部署 Laravel 节点错误

在 Amazon Elastic Beanstalk 节点之间共享数据

记录 Elastic Beanstalk 节点应用程序

Elastic BeanStalk 节点 Js/Angular 部署问题

Elastic Beanstalk 上的节点 Docker 容器找不到本地 Gulp