Amazon Elastic Beanstalk上的Node.js部署问题

我正在尝试使用Amazon Elastic Beanstalk服务部署node.js应用程序。 遵循本教程( http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.sdlc.html ),我设法部署了该应用程序。 但是,一旦上传到亚马逊,应用程序无法启动。 调查日志显示我以下错误:“无法运行npm安装”。

有没有人有什么问题可能是一个好主意? 该应用程序在本地运行良好。

在此先感谢您的帮助!

我遇到了同样的问题,凯文的解决scheme为我解决了这个问题,但引入了另一个问题:由EB自动扩展的新实例也需要手动configuration。 这是对我解决这两个问题的凯文方法的修改:

解决Kevin问题的另一种方法是将所需的软件包添加到您的应用程序的configuration文件中。 创build扩展名为.config的configuration文件(例如,myapp.config),并将其放在源包的.ebextensions顶级目录中。 为了要求openssl-devel包,在configuration文件中包含这些行:

packages: yum: openssl-devel: [] 

有关configuration文件的详细信息: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_custom_container.html

以及在configuration文件中包含软件包(以及更多)的详细信息: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

我发现问题是什么。 这是解释。

npm软件包pipe理器没有安装某些软件包的原因是由于某些软件包需要首先安装linux库(即OpenSSL-devel)。 为了解决这个问题,我不得不:

1. SSH与我的Node.js Elastic Beanstalk实例相关联的EC2实例

首先,删除EC2实例上的“终止保护”(点击你的EC2实例,然后查找“更改终止保护”),然后,你需要添加一个“KeyPair”到EC2实例,为此,请去ELBpipe理器并编辑你的ELB应用程序的configuration文件,详细解释请查看这个链接( SSH到Elastic Beanstalk实例 )

2.安装缺less的库 (在我的情况下,因为bcrypt npm包需要它)

 sudo yum update sudo yum install openssl-devel 

希望这可以帮助!

我遇到了这个问题,并通过简单地select下一个更大的实例types来解决它。