【问题标题】:NodeJS API deployement on AWS with Elastic Beanstalk使用 Elastic Beanstalk 在 AWS 上部署 NodeJS API
【发布时间】:2020-08-24 06:29:54
【问题描述】:

我正在寻找使用 AWS 部署我的 NodeJS API。

我尝试使用 Elastic Beanstalk,但总是遇到这个问题:

Image of the error I get

这是我的 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


【解决方案1】:

基于 cmets。

主要问题是使用rar 进行打包部署而不是zip。修复该问题后,必须调整配置文件以与 Amazon Liunx 2 一起使用。

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 2016-10-12
    • 2016-12-20
    • 1970-01-01
    • 2015-09-20
    • 2018-06-06
    • 2016-06-19
    • 2020-08-02
    • 2014-12-25
    相关资源
    最近更新 更多