首页 文章

将战争从S3部署到AWS Elastic Beanstalk

提问于
浏览
7

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

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

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

2 回答

  • 2

    我在this post得到了最好的答案:

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

    • 上传到S3存储桶: aws s3 cp /var/lib/tomcat7/webapps/ROOT.war s3:// elasticbeanstalk-ap-southeast-1-xxxxxx / myROOT.war

    • 创建应用程序版本: 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

    • 更新您的环境: aws elasticbeanstalk update-environment --environment-name your_environment_name --version-label your_version_label

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

  • 19

    如果您的s3 war文件位于mybucket / test / myapp.war中,那么使用s3存储桶创建应用程序版本为 mybuckettest/myapp.war 就是这样做的方法 . 不确定为什么会收到与VPC相关的错误 . 您何时何地看到该错误?创建应用程序版本或创建环境时? API调用是否会立即抛出错误消息,您是否会在以后的事件中看到它?

相关问题