Elastic Beanstalk 始终在从 Codebuild 部署时更新环境

Posted

技术标签:

【中文标题】Elastic Beanstalk 始终在从 Codebuild 部署时更新环境【英文标题】:Elastic Beanstalk Always Updates Environment On Deploy From Codebuild 【发布时间】:2020-12-03 11:14:51 【问题描述】:

我有一个大型的多组件 django 应用程序,我正在尝试将其部署到弹性 beanstalk。我正在使用多泊坞窗环境。这是我目前的工作流程

    Git 提交触发 AWS 代码管道 AWS Codebuild 构建 docker 镜像 (docker-compose build),运行一些测试,并将该镜像推送到 AWS Elastic Container Registry AWS 代码构建调用 eb deploy

我遇到的问题是,当我从本地机器调用eb deploy 时,它只是升级了应用程序,但是当我从 Code Build 调用它时,它每次都在升级环境,大约需要 30出于某种原因分钟

我使用-v 运行部署命令,并确认正在压缩相同的文件。关于这里发生了什么的任何想法,我的设置不正确吗?

我还尝试在管道中从 Code Deploy 部署应用程序,并且可以确认它也总是升级整个环境。

【问题讨论】:

【参考方案1】:

我认为,如果您使用 CB 来更新您的 EB 环境,它只会替换它,因为它被视为一个新环境。在您的本地工作站中,您只使用一个环境,但使用的是新的应用程序版本。

我会考虑用 CP 中的 EB 部署提供程序替换 CB 来更新您的 EB 环境。这应该会成功,只需将您的新应用程序版本上传到现有的 EB 环境即可。

CP 原生 supports a number 的部署操作提供程序,其中之一是 Elastic Beanstalk:

您可以将 CodePipeline 配置为使用 Elastic Beanstalk 来部署您的代码。您可以在创建管道之前或使用“创建管道”向导时创建 Elastic Beanstalk 应用程序和环境以用于阶段中的部署操作

【讨论】:

以上是关于Elastic Beanstalk 始终在从 Codebuild 部署时更新环境的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4 Elastic Beanstalk 部署错误

Elastic Beanstalk 在 EbExtensionPostBuild 处停止

Docker Elastic Beanstalk ELB 忽略 .ebextesnions

AWS Elastic Beanstalk 504 网关超时

Rails 4.1 Elastic Beanstalk 找不到图片网址

使用 Elastic Beanstalk 设置 Flask 数据库迁移