应用程序源包在上传到 AWS Elastic Beanstalk 时不起作用

Application source bundle doesn't work when uploaded to AWS Elastic Beanstalk

我正在尝试上传在 Linux 2 Coretto 11 环境中运行的 Java/Spring 启动应用程序。当我上传独立的 JAR 文件时一切正常,但我开始创建一个应用程序包,这样我就可以配置环境,特别是 client_max_body_size.

看起来应用程序正在启动,但随后发生了一些错误,信息不多 (logs)。在 EB 控制台中,我不断收到错误消息:During an aborted deployment, some instances may have deployed the new application version。为确保所有实例都是 运行 相同版本,请重新部署适当的应用程序版本。

我将包作为 .zip 文件上传 - 它包含 JAR、Procfile 和包含配置文件 (~/.ebextensions/01_files.config) 的 .ebextensions 目录,所有这三个文件都是在 zip 文件的根目录中。后两者如下图:

过程文件:web: java -Dfile.encoding=UTF-8 -Xms2g -Xmx2g -jar DocumentSummarizer-1.0-SNAPSHOT.jar

配置文件: 01_files.config

配置文件有正确的 YAML 缩进(2 个空格)。

我觉得我已经尝试了 Whosebug 和 Amazon 文档中的所有变体来实现这个目标,所以此时我只是在用头撞墙。任何帮助将不胜感激。

更新:

u/Marcin的答案是正确的(nginx 设置需要在.platform/nginx/conf.d/mynginx.conf 中)。在那之后我处理了一段时间的第二个问题是值后面没有分号。我认为只有当你有多个值时才需要它,但它不会正常工作,除非每个值后面都有一个(即 client_max_body_size 20MB;)。

一个可能的原因是您正在使用基于 Amazon Linux 2 (AL2) 的 EB 环境。如果是这样,那么你的 01_files.config 是不正确的.

对于 AL2,.platform/nginx/conf.d/ 中的 nginx 设置 should be provided,而不是 .ebextentions。因此,例如,您可以创建以下配置文件:

.platform/nginx/conf.d/mynginx.conf

内容为:

client_max_body_size 20M

请注意,可能还有许多其他问题,这些问题尚不明显,特别是如果您遵循了 AL1 的任何说明。原因是AL1和AL2之间有很多差异