首页 > 解决方案 > 在 Elastic Beanstalk 上失败后如何部署新版本?

问题描述

我想通过Dockerrun.aws.json在浏览器中将应用程序部署到弹性 beanstalk。我点击Create Application,选择local file并输入version labelv0.0.0

部署不起作用,因为我的文件中有错误,所以我修复了这个问题并想上传一个新版本。

根据https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html#deployments-newversion我转到导航窗格,选择Environments,选择我的环境,单击Upload and deploy并选择我更改的本地文件。建议的新版本标签是v0.0.0-1. 我接受并单击deploy。然后我的第二次部署失败了,显然是因为版本控制,因为Health它说 Incorrect application version "v0.0.0-1" (deployment 2). Expected version "v0.0.0" (deployment 1).

我想了解为什么我不能以我尝试的方式部署以及如何正确地进行部署。

我尝试过的事情:

终止环境并创建一个新环境

工作,但需要很多时间。

通过相同版本部署Upload and Deploy

(通过终止当前环境,创建新环境,第一次部署失败来确保相同的条件)
由于预期旧版本,我尝试v0.0.0为第二次部署输入旧版本标签。
我点击Upload and deploy但表格不允许这样做并说An application version with that label already exists.

在此处输入图像描述

通过相同版本部署Application versions

马辛建议Application versions。在那里我可以看到失败的原始版本:

在此处输入图像描述

现在我可以上传一个新文件

标签: amazon-web-servicesamazon-elastic-beanstalk

解决方案


Application Version您应该从页面部署旧版本。

您在问题中截屏的窗口是上传新版本,而不是重新部署旧版本。因此,您会收到错误消息,您希望将应用程序的新版本标记为旧版本。

但是,如果您想自己再次上传旧版本,则必须为其分配一个新的、不存在的标签。

作为未来的附注,您可以通过使用immutableblue/green策略来最大程度地减少失败部署对当前环境的影响。


推荐阅读