【发布时间】:2020-08-24 06:29:54
【问题描述】:
我正在寻找使用 AWS 部署我的 NodeJS API。
我尝试使用 Elastic Beanstalk,但总是遇到这个问题:
这是我的 package.json
{
"name": "",
"scripts": {
"start": "node server.js"
},
"version": "0.0.0",
"private": true,
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.18.3",
"express": "^4.16.4",
"hammerjs": "^2.0.8",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.4.20",
"mongoose-unique-validator": "^2.0.2",
"multer": "^1.4.1",
"tslib": "^1.9.0"
}
}
我还有一个 nodecommand.config 到一个名为“.ebextensions”的文件夹中
option_settings:
aws:elasticbeanstalk:container:nodejs:
NodeCommand: "npm start"
另外,Elastic Beanstalk 是部署我的 API 的最佳方式吗?
谢谢你的答案!
【问题讨论】:
-
您检查过实例中的 EB 日志吗?
-
@Marcin 我浏览了每个报告日志,发现的唯一错误是这个:“[ERROR] 执行命令 [self-startup] - [StageApplication] 期间发生错误。停止运行命令。错误:由于 zip 文件无效,暂存应用程序失败“实际上我使用的是 .RAR 文件,但这应该不是问题吗?我现在就试试.ZIP
-
不可能是rar。只有 zip,如果是 docker eb,可以只解压 Dockerfile。
-
@Marcin,感谢您的提示!在阅读了一个又一个日志之后,我终于做到了:) 首先,我必须将我的 .RAR 更改为 ZIP 文件。另外,我使用的是在 aws 的 Linux 2 上运行的 NodeJS v14,而我的配置文件不适合这个版本。
-
很高兴听到。如果您不介意将来参考,我会回答。
标签: node.js amazon-web-services api deployment amazon-elastic-beanstalk