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 网关超时