You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Elastic Beanstalk每次部署是否更新.ebextensions与.platform配置?

问题1:.ebextensions与.platform配置的生效时机

  • 两个文件夹下的配置每次向EB推送新版本部署时都会重新执行、生效,并非仅首次部署处理。
  • 细分逻辑:
    • .ebextensions 下的YAML配置(包安装、系统文件写入、commands/container_commands 命令、服务配置等),每次部署都会按官方定义的优先级顺序执行:如果是安装类操作(比如yum装包),已存在的资源会跳过执行但逻辑仍会校验;如果是配置写入、命令执行类操作,会完全按照当前版本包里的配置重新运行。
    • .platform 下的配置(反向代理配置、平台运行时参数、各阶段部署钩子脚本等),每次部署都会覆盖EB平台的默认对应配置,钩子脚本也会按阶段依次触发。
  • 注意事项:如果你在后续版本中删除了某条配置,已经通过该配置生成的操作系统层面资源(比如已安装的软件包、已写入的系统文件)不会被自动清理,需要额外编写清理逻辑处理。

问题2:AWS Elastic Beanstalk 部署底层运行逻辑

全局调度层逻辑

  • 你上传的应用版本包(不管是CodePipeline推送还是手动上传)会被存储到EB关联的专属S3存储桶,控制平面先校验包结构、配置文件语法合法性,校验失败直接标记部署失败。
  • 控制平面根据你选定的部署策略(全量部署、滚动部署、蓝绿部署、不可变部署)调度实例组,确定需要执行部署的实例范围。

单EC2实例内部部署流程(核心)

  1. 预部署准备:实例上运行的EB Agent进程拉取新版本包到本地临时目录,停止当前应用服务,备份上一版本的应用文件与运行配置,用于部署失败时回滚。
  2. .ebextensions 配置执行:按顺序执行 .ebextensions 下的配置逻辑:
    • 执行 packages 段安装系统/软件依赖
    • 执行 files 段写入自定义系统配置文件
    • 执行 commands 段命令(应用代码解压前运行,无法访问应用代码内容)
    • 解压新版本应用代码到实例的应用根目录
    • 执行 container_commands 段命令(应用代码解压后、启动前运行,可以访问当前版本的应用代码)
  3. .platform 配置应用:
    • 用 .platform 下的反向代理、运行时配置覆盖EB平台的默认配置
    • 按顺序执行 prebuild、build、predeploy 三个阶段的自定义钩子脚本
  4. 应用启动与校验:启动应用服务,执行内置健康检查与用户自定义健康检查,确认服务正常运行、端口可访问。
  5. 部署收尾:校验通过后,执行 postdeploy 阶段钩子脚本,清理临时文件,上报部署成功状态到EB控制平面;如果是滚动/蓝绿部署策略,控制平面会将流量逐步切到新版本实例。
  • 任何阶段出现错误,EB都会根据你配置的回滚策略,自动恢复到上一个可用的版本。

内容的提问来源于stack exchange,提问作者saa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:54:00