将战争从S3部署到AWS Elastic Beanstalk

the*_*mix 8 amazon-s3 amazon-ec2 amazon-web-services amazon-elastic-beanstalk

我有2台AWS机器1.dev (ec2) 2. prod (elastic beanstalk).我在每次提交后构建并部署在dev(machine1)上,这会导致war文件(也将使用s3cmd工具上传到S3存储桶).然后我在dev机器上测试新部署的战争,如果看起来不错,那么我从dev(ec2)下载战争然后将其上传到prod机器(Elastic beanstalk).

有没有办法让弹性豆茎直接从S3桶中取出战争,而不是从ec2下载然后将其上传到弹性豆茎?

我尝试创建新环境然后为应用程序版本提供了s3存储桶路径,但它无法正常工作.(给出了一些错误,说"这只能在VPC中完成").

the*_*mix 20

我在这篇文章中得到了最好的答案:

使用AWS CLI需要3个简单的步骤:

  1. 上传到S3存储桶:aws s3 cp /var/lib/tomcat7/webapps/ROOT.war s3:// elasticbeanstalk-ap-southeast-1- xxxxxx/myROOT.war
  2. 创建应用程序版本:aws elasticbeanstalk create-application-version --application-name your_app_name --version-label your_version_label --source-bundle S3Bucket = elasticbeanstalk-ap-southeast-1- xxxxxx,S3Key = myROOT.war
  3. 更新您的环境:aws elasticbeanstalk update-environment --environment-name your_environment_name --version-label your_version_label

我创建了一个bash脚本,上述所有步骤只需3秒钟.请仔细阅读链接以获得更具描述性的答案.