克隆Elastic Beanstalk环境时如何切换平台分支升级至Amazon Linux 2
Elastic Beanstalk控制台克隆界面禁用Amazon Linux到Amazon Linux 2的平台切换,是默认的跨大版本保护机制,你可以用以下两种不用从零搭建环境的方法完成迁移:
前置准备
- 先在Elastic Beanstalk控制台「应用版本」页面下载当前正在使用的应用代码包备份,避免操作出错丢失数据
- 提前确认项目代码、依赖配置适配目标Amazon Linux 2 Python平台的运行时版本,两个系统的目录结构、默认软件配置存在差异
方法1:使用AWS CLI强制更新平台版本(无需创建新环境)
- 本地安装并配置好AWS CLI,确保账号拥有Elastic Beanstalk的操作权限
- 执行命令获取当前环境的ARN,替换尖括号内容为你的实际资源名:
aws elasticbeanstalk describe-environments --application-name <你的应用名> --environment-names <你的环境名> --query "Environments[0].PlatformArn" - 执行命令查询你需要的Amazon Linux 2 Python平台的ARN,示例为Python 3.9版本,可替换为你需要的运行时版本:
aws elasticbeanstalk list-platform-versions --filters "Type=PlatformName,Operator=contains,Values=Python 3.9 running on 64bit Amazon Linux 2" --query "PlatformVersionSummaryList[0].PlatformArn" - 执行更新命令触发环境平台升级:
aws elasticbeanstalk update-environment --environment-name <你的环境名> --platform-arn <上一步获取的AL2平台ARN> - 等待5-15分钟,在控制台事件页面监控升级进度,升级完成后验证服务可用性即可
方法2:导出旧环境配置创建新环境
如果CLI升级出现兼容性报错无法修复,可以用这个方法保留所有配置创建新环境:
- 进入旧环境的「配置」页面,点击右上角「操作」按钮选择「导出配置」,将配置文件保存到本地
- 回到应用根页面,点击「创建新环境」,选择「Web服务器环境」
- 填写环境基础信息,平台分支选择你需要的Amazon Linux 2对应Python版本
- 在「配置预设」步骤,选择「使用现有配置」,上传之前导出的旧环境配置文件
- 应用版本选择你之前备份的最新应用包,直接完成环境创建,新环境会自动继承旧环境的实例规格、安全组、环境变量、存储配置等所有设置
- 验证新环境服务运行正常后,将域名解析切换到新环境的负载均衡地址,确认流量切完后删除旧环境即可
常见启动失败排查
如果升级后应用无法启动,优先检查以下配置:
requirements.txt内的依赖包版本是否适配Amazon Linux 2自带的Python版本- 旧环境的
.ebextensions配置是否兼容Amazon Linux 2,比如Nginx自定义配置需要从旧的/etc/nginx/conf.d/路径迁移到.platform/nginx/conf.d/目录 - 所有自定义环境变量是否完整迁移,尤其是涉及文件路径、运行时参数的变量
内容的提问来源于stack exchange,提问作者Selase
相关产品推荐
相关产品推荐

