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

如何通过AWS CLI仅上传Elastic Beanstalk应用版本而不部署?

可以!用AWS CLI单独上传Elastic Beanstalk应用版本的方法

完全可以只上传应用版本而不触发部署——你需要的是aws elasticbeanstalk create-application-version命令,而不是eb deploy(后者确实会自动关联部署流程)。下面是具体的步骤和细节:

步骤1:准备应用包并上传到S3(如果还没做)

Elastic Beanstalk的应用版本需要关联存储在S3中的应用包,所以首先把你的本地应用打包(比如zip格式),然后上传到S3:

# 上传本地包到指定S3路径
aws s3 cp ./your-app-bundle.zip s3://your-target-bucket/beanstalk-versions/v1.0.0/your-app-v1.0.0.zip

步骤2:创建Elastic Beanstalk应用版本

用create-application-version命令将S3中的包关联为应用版本,这一步不会触发任何部署:

aws elasticbeanstalk create-application-version \
    --application-name "Your-ElasticBeanstalk-App-Name" \
    --version-label "v1.0.0" \
    --source-bundle S3Bucket="your-target-bucket",S3Key="beanstalk-versions/v1.0.0/your-app-v1.0.0.zip" \
    --description "Version v1.0.0: Uploaded via AWS CLI (no deployment)"

参数说明:

  • --application-name:你的Elastic Beanstalk应用名称,必须和控制台里的一致
  • --version-label:版本的唯一标识,不能和该应用下已有的版本重复
  • --source-bundle:指定S3桶和文件路径,格式是S3Bucket="bucket-name",S3Key="file-path"
  • --description:可选,添加版本的备注信息,方便后续识别

简化选项:用eb package快速打包上传

如果你习惯用EB CLI,也可以用eb package命令自动打包应用并上传到S3(默认会用Elastic Beanstalk的默认存储桶),它只会完成打包上传,不会创建应用版本或部署。执行后会输出S3的路径,你可以直接把这个路径用到上面的create-application-version命令里:

# 打包并上传到S3,输出路径
eb package --application-name "Your-ElasticBeanstalk-App-Name" --version-label "v1.0.0"

IAM权限配置(针对CodeBuild)

给CodeBuild的服务角色添加以下权限即可完成这两步操作,无需部署相关的权限:

  • elasticbeanstalk:CreateApplicationVersion:允许创建应用版本
  • s3:PutObject:允许上传文件到目标S3桶(如果用自己的S3桶)
  • (可选)elasticbeanstalk:CheckAvailability:部分场景下可能需要这个权限验证版本标签唯一性

这样配置后,CodeBuild就能安全地完成应用版本上传,完全不需要管理环境实例的私钥,避免了你担心的繁琐操作。

之后你就可以在Elastic Beanstalk控制台自由选择这个新上传的版本进行部署,完美拆分你的流程!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:58:58