Elastic Beanstalk:部署Nodejs状态降级以下服务未运行:Web

问题描述

我只使用eb deploy并尝试使用zip进行上传,而讽刺的豆茎环境显示为“退化”。

我点击查看的日志是

Overall 
Degraded

Impaired services on all instances.

Severe
Following services are not running: web.

我的app.js文件

const express = require('express');
const app = express();

app.listen(3000,() => {
    console.log("Sever console log.")
});

package.json内容

{
  "name": "project_api","version": "1.0.0","engines": {
    "node": "12.18.3"
  },"description": "the server side of the api","main": "app.js","scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },"author": "Businsoft Limited","license": "ISC","dependencies": {
    "dropBox": "^5.2.1","express": "^4.17.1","isomorphic-fetch": "^2.2.1","nodemon": "^2.0.4"
  }
}

我认为这是从Elastic Beanstalk开始的最简单方法,但是以某种方式失败了。有解决的办法吗?

解决方法

调试了一段时间后,我设法找出了问题所在。

package.json

我需要删除此行:

"main": "app.js",

然后在“脚本”中添加“开始”,如下所示:

"scripts":
  "start": "node app.js"

然后更新

app.listen(3000,() => {
    console.log("Sever console log.")
});

const port = process.env.port || 3000;
app.listen(port,() => {
    console.log("Sever console log.")
});

然后转到AWS控制台> Elastic Beanstalk的环境>配置>软件编辑>在环境属性中添加属性

名称port8080

最后重新上传源代码,它可以工作。