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

Posted

技术标签:

【中文标题】上传到 AWS Elastic Beanstalk 时,应用程序源包不起作用【英文标题】:Application source bundle doesn't work when uploaded to AWS Elastic Beanstalk 【发布时间】:2020-12-05 09:59:05 【问题描述】:

我正在尝试上传在 Linux 2 Coretto 11 环境中运行的 Java/Spring Boot 应用程序。上传独立 JAR 文件后一切正常,但我开始创建应用程序包,以便配置环境,特别是 client_max_body_size

看起来应用程序正在启动,但随后发生了一些错误,但信息不多 (logs)。在 EB 控制台中,我不断收到错误消息:在中止部署期间,某些实例可能已经部署了新的应用程序版本。为确保所有实例都运行相同的版本,请重新部署相应的应用程序版本。

我以 .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 个空格)。

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

更新:

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

【问题讨论】:

你能看看更多的日志吗?您可以从 EB 控制台下载它们,或登录实例后在/var/log 文件夹中查看它们。 当然-nginx logs 那些日志告诉我,我的源包有问题,我可以在 eb-engine.log 中了解更多信息,但 eb-engine.log 基本上告诉我同样的事情,没有额外的细节 - @ 987654324@ 【参考方案1】:

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

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

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

内容为:

client_max_body_size 20M

请注意,可能还有许多其他问题尚不明显,特别是如果您按照 AL1 的任何说明进行操作。原因是 AL1 和 AL2 之间存在许多差异

【讨论】:

以上是关于上传到 AWS Elastic Beanstalk 时,应用程序源包不起作用的主要内容,如果未能解决你的问题,请参考以下文章

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

上传 Flask 应用程序时出现 AWS Elastic Beanstalk 错误

如何通过 CLI 将 zip 文件上传和部署到 AWS elastic beanstalk?

Wordpress 和 AWS - Elastic Beanstalk 卡在“上传应用程序版本”中

如何从 AWS Elastic BeanStalk 获取更新的“上传”文件夹?

无法使用模式 r 打开:fopen():AWS Elastic Beanstalk