如何在AWS Elastic Beanstalk上强制应用程序版本

21

我正在尝试使用eb deploy部署我的Python/Django应用的新版本。

不幸的是,由于应用程序的意外版本,它失败了。问题在于某种方式下,eb deploy搞砸了版本号,我不知道该如何覆盖它。我上传的应用程序运行良好,只是版本号不正确,因此,Elastic Beanstalk将其标记为Degraded

执行eb deploy时,我会得到这个错误:

"Incorrect application version "app-cca6-160820_155843" (deployment 161). Expected version "app-598b-160820_152351" (deployment 159). "

AWS控制台中的健康状态也是如此。

那么,我的问题如下:如何强制Elastic Beanstalk使上传的应用程序版本成为当前版本,以便它不再抱怨?


1
我非常支持不创建新的应用程序。这是一个生产环境,我不希望因这样的事情而出现停机时间。 - 0x4ndy
我认为您的GIT版本控制存在一些问题。每次您有新的应用程序版本并部署时,EB将自动创建一个新的EB版本,当您登录AWS上的EB时,可以通过浏览器查看它们。只需检查您在AW上拥有哪些应用程序版本即可。 - WayBehind
好的,让我们看一下GIT的版本控制出现了问题。我可以查看EB当前使用的版本以及已上传的版本,并且我也能看到期望使用的版本。那么,如何解决这个问题呢? - 0x4ndy
你在部署之前是否总是运行 git update 和 git commit? - WayBehind
是的,我总是这样做,因为这是 eb deploy 正常工作所必需的。 - 0x4ndy
显示剩余2条评论
2个回答

13

我意识到问题出在Elastic Beanstalk,由于某些原因,它在.elasticbeanstalk下保留了部署失败的版本。解决方案至少在我的情况下是删除应用程序的这些临时(或者你如何称呼它们)版本。


1
抱歉,我和你一样遇到了困难。当你说在.elasticbeanstalk下时,你是指S3存储桶中的.zip文件吗?谢谢! - Jaswanth Manigundan
是的,我已经从.elasticbeanstalk文件夹中删除了旧内容。我现在记不清了,除了压缩的应用程序之外,可能还有一个保存版本的文件,但我不能确定。 - 0x4ndy
1
谢谢。按照您的建议进行了操作,并重新启动了实例。效果非常好。在深入研究文档后,发现版本指针是导致问题的原因。 - Jaswanth Manigundan
1
@aolchawa 这个文件夹在哪里?我找不到它。你能详细解释一下吗? - AMBasra
1
您可以在EBS控制台上完成此操作。在左侧菜单中,找到您的应用程序名称,在其下面有一个名为“应用程序版本”的部分。 - F_SO_K
显示剩余2条评论

0
也许问题就在这里:

AWS Elastic Beanstalk Docker Does not support Multi-Stage Build

如果是这样,我使用了一个未命名的阶段来处理多阶段Dockerfile。请查看该链接以获取解决方案。但是下次建议您发布日志的最后100行。通过观察事件日志,问题可能不太清楚。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接