问题描述
我只使用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的环境>配置>软件编辑>在环境属性中添加属性
名称port
值8080
最后重新上传源代码,它可以工作。