首页 文章

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

提问于
浏览
10

我正在尝试使用Amazon Elastic Beanstalk服务部署node.js应用程序 . 按照本教程(http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.sdlc.html),我设法部署了应用程序 . 但是,一旦在亚马逊上传,该应用程序就无法启动 . 调查日志显示以下错误:"Failed to run npm install" .

有谁知道问题可能是什么?该应用程序在本地运行良好 .

在此先感谢您的帮助!

3 回答

  • 1

    我遇到了同样的问题,Kevin的解决方案为我解决了问题,但又引入了另一个问题:EB为自动扩展生成的新实例也需要手动配置 . 这是我用来解决这两个问题的Kevin方法的修改:

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

    packages:
        yum:
            openssl-devel: []
    

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

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

  • 1

    我发现了问题所在 . 这是解释 .

    npm包管理器无法安装某些包的原因是因为某些包需要首先安装linux库(即OpenSSL-devel) . 为了解决这个问题,我不得不:

    1. SSH to my EC2 instance associated with my Node.js Elastic Beanstalk instance

    首先,删除EC2实例上的"Termination Protection"(单击您的EC2实例,然后查找"Change Termination Protection" . 然后,您需要向EC2实例添加"KeyPair" . 为此,请转到ELB管理器并编辑ELB应用程序的配置文件 . 有关详细说明,请查看此链接(SSH to Elastic Beanstalk instance

    2. Install the missing libraries (在我的情况下,因为bcrypt npm包需要它)

    sudo yum update
    
    sudo yum install openssl-devel
    

    希望这可以帮助!

  • 15

    我遇到了这个问题,并通过简单地选择下一个更大的实例类型来解决它 .

相关问题