5

我有2臺AWS機器,1.dev (ec2) 2. prod (elastic beanstalk)。每構建一個war文件(也將使用s3cmd工具上載到S3存儲桶)後,我會在dev(machine1)上構建和部署。然後我測試開發機器上新部署的戰爭,如果它看起來不錯,那麼我從dev(ec2)下載戰爭,然後將其上傳到prod機器(Elastic beanstalk)。將戰爭從S3部署到AWS Elastic Beanstalk

有沒有辦法讓彈性beanstalk直接從S3桶取得戰爭,而不是從ec2下載它,然後將其上傳到彈性beanstalk?

我試着創建新的環境,然後給應用程序版本的s3桶路徑,但它沒有工作。 (給出了一些錯誤,說「這隻能在VPC中完成」)。

回答

15

我已經得到了最好的答案this post

它需要使用AWS CLI 3個簡單步驟:

  1. 上傳到S3鬥:AWS S3 CP在/ var/lib中/ tomcat7/webapps中/ROOT.war S3:// elasticbeanstalk-AP-東南-1- XXXXXX/myROOT.war
  2. 創建應用程序版本:AWS elasticbeanstalk CRE吃的應用程序的版本 --application名your_app_name --version標籤your_version_label --source束S3Bucket = elasticbeanstalk-AP-東南-1- XXXXXX,S3Key = myROOT.war
  3. 更新你的環境:AWS elasticbeanstalk更新環境 --environment名your_app_name --version標籤your_version_label

我已經創建了一個​​,所有上述步驟僅需3秒。請仔細閱讀鏈接以獲取更多描述性答案。

+0

在AWS docco http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.html – 2015-10-29 10:13:12

2

如果您的s3 war文件位於mybucket/test/myapp.war中,那麼使用s3存儲區創建一個應用程序版本爲mybuckettest/myapp.war即可。不知道你爲什麼得到VPC相關的錯誤。你何時何地發現錯誤?當您創建應用程序版本或創建環境時? API調用是否立即在事件中看到錯誤消息?

+0

謝謝,但是我想部署的戰爭路徑是'https:// s3-us-west-2.amazonaws.com/mybucket/ROOT.war',但是當我以S3- URL,它不接受它,我也嘗試過使用「https:// s3.amazonaws.com/mybucket/ROOT.war」和「https:// mybucket.s3.amazonaws.com/ROOT.war」,但沒有運氣。我究竟做錯了什麼? – thekosmix 2014-09-07 07:39:58

+0

這很好......在S3Bucket上面的s3 url中是「mybucket」,而對象鍵是「ROOT.war」。如果您在us-west-2中啓動彈性beanstalk環境,請確保'mybucket'也在區域'us-west-2'中創建。 – 2014-09-07 07:42:40

+0

thnx,我能夠部署它,但最後一件事,我如何部署ROOT.war的下一個版本?以上步驟是第一次完成,我怎樣才能部署下一個版本? – thekosmix 2014-09-07 18:47:57

相關問題