如何使用AWS CLI更新Elastic Beanstalk应用代码(替代eb deploy)
使用AWS CLI部署Elastic Beanstalk应用代码(替代eb deploy)
eb deploy本质上会完成代码打包、上传S3、创建应用版本、更新环境这一系列操作,你可以用AWS CLI分步完成这些步骤,适配已配置的MFA会话:
步骤1:打包应用代码
先将你的应用代码打包成ZIP文件,建议排除不必要的文件(如.git、本地依赖目录)以减小包体积:
zip -r my-app-deploy.zip . -x ".git/*" "node_modules/*" "venv/*"
根据你的项目类型调整排除规则。
步骤2:上传包到S3存储桶
将打包好的文件上传到AWS S3,你可以用现有Elastic Beanstalk自动创建的桶,也可以用自己的专属桶:
aws s3 cp my-app-deploy.zip s3://your-s3-bucket-name/eb-apps/my-app/v1.0.0.zip
- 替换
your-s3-bucket-name为实际的S3桶名 - 确保当前MFA会话的IAM用户拥有该桶的
s3:PutObject权限
步骤3:创建Elastic Beanstalk应用版本
基于S3中的包创建一个新的应用版本:
aws elasticbeanstalk create-application-version \ --application-name your-eb-app-name \ --version-label v1.0.0 \ --source-bundle S3Bucket=your-s3-bucket-name,S3Key=eb-apps/my-app/v1.0.0.zip
- 替换
your-eb-app-name为你的Elastic Beanstalk应用名称 version-label建议用语义化版本号,方便后续追踪
步骤4:更新环境到新版本
将目标Elastic Beanstalk环境更新为刚创建的版本:
aws elasticbeanstalk update-environment \ --environment-name your-eb-env-name \ --version-label v1.0.0
- 替换
your-eb-env-name为你的环境名称
额外注意事项
- MFA会话验证:确保你当前的AWS CLI会话已正确加载带MFA令牌的凭证(你已更新凭证文件,无需额外操作)
- IAM权限检查:确保你的IAM用户策略包含以下必要权限:
elasticbeanstalk:CreateApplicationVersionelasticbeanstalk:UpdateEnvironments3:PutObject(对应上传的S3桶)- 可选:
elasticbeanstalk:DescribeEnvironments(用于验证部署状态)
- 部署状态验证:可以用以下命令查看环境更新进度:
aws elasticbeanstalk describe-environments --environment-name your-eb-env-name
内容的提问来源于stack exchange,提问作者user1532573
相关产品推荐
相关产品推荐

