amazon-web-services - 在 Elastic Beanstalk 上失败后如何部署新版本?
问题描述
我想通过Dockerrun.aws.json
在浏览器中将应用程序部署到弹性 beanstalk。我点击Create Application
,选择local file
并输入version label
为v0.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
。在那里我可以看到失败的原始版本:
现在我可以上传一个新文件
解决方案
Application Version
您应该从页面部署旧版本。
您在问题中截屏的窗口是上传新版本,而不是重新部署旧版本。因此,您会收到错误消息,您希望将应用程序的新版本标记为旧版本。
但是,如果您想自己再次上传旧版本,则必须为其分配一个新的、不存在的标签。
作为未来的附注,您可以通过使用immutable
或blue/green
策略来最大程度地减少失败部署对当前环境的影响。
推荐阅读
- solr - 折叠来自 solr 的结果后过滤
- javascript - 只有一个 blob 可以播放,使用媒体记录器用电子在磁盘上写入
- vue.js - 使用 VueJS 从选择下拉菜单中删除某些项目
- windows - 没有凭据管理器的 Windows 共享身份验证
- javascript - 通过 mailto 在正文中发送不可执行的脚本:
- python - 如何配置 python 私有 repo 版本
- python - 使用 Python 查找 FFT 系数
- sql - 如何使用 sql 提取报告
- python - 电报客户端在多线程上运行
- java - 在集群模式下使用 Java 读取 Spark 中保存在本地的 CSV 文件