上传到 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 卡在“上传应用程序版本”中