5

Tôi có 2 máy AWS, 1.dev (ec2) 2. prod (elastic beanstalk). Tôi xây dựng và triển khai trên dev (machine1) sau mỗi lần commit kết quả thành một tập tin chiến tranh (cũng sẽ được tải lên trên một thùng S3 sử dụng công cụ s3cmd). Sau đó, tôi kiểm tra cuộc chiến mới được triển khai trên máy dev, nếu nó có vẻ tốt, sau đó tôi tải về chiến tranh từ dev (ec2) và sau đó tải nó lên máy prod (Elastic beanstalk).Triển khai chiến tranh từ S3 đến AWS Cây đậu đàn hồi

Có cách nào để làm cho beanstalk đàn hồi lấy chiến tranh trực tiếp từ thùng S3, thay vì tải xuống từ ec2 và sau đó tải nó lên cây đậu đàn hồi?

Tôi đã thử tạo môi trường mới và sau đó cung cấp đường dẫn xô s3 cho phiên bản ứng dụng, nhưng nó không hoạt động. (đã đưa ra một số lỗi nói rằng "điều này chỉ có thể được thực hiện trong VPC").

Trả lời

15

tôi đã có câu trả lời tốt nhất trong this post:

nó đòi hỏi 3 bước đơn giản sử dụng AWS CLI:

  1. Upload để S3 xô: AWS s3 cp/var/lib/tomcat7/webapps /ROOT.war s3: // elasticbeanstalk-ap-đông nam-1- xxxxxx/myROOT.war
  2. Tạo phiên bản ứng dụng: AWS elasticbeanstalk cre ăn-ứng dụng phiên bản --application tên your_app_name --version nhãn your_version_label --source-bó S3Bucket = elasticbeanstalk-ap-đông nam-1- xxxxxx, S3Key = myROOT.war
  3. cập nhật môi trường của bạn: AWS elasticbeanstalk update-môi trường --environment tên your_app_name --version nhãn your_version_label

Tôi đã tạo một bash script, chỉ mất 3 giây cho tất cả các bước trên. Đi qua liên kết để có thêm câu trả lời mô tả.

+0

Trong AWS docco http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.html –

2

Nếu tệp chiến tranh s3 của bạn nằm trong mybucket/test/myapp.war thì hãy tạo phiên bản ứng dụng với nhóm s3 là mybuckettest/myapp.war là cách để thực hiện. Bạn không chắc chắn lý do tại sao bạn nhận được lỗi liên quan đến VPC. Khi nào và ở đâu bạn thấy lỗi đó? Khi bạn tạo một phiên bản ứng dụng hoặc khi bạn tạo một môi trường? Cuộc gọi API có gửi thông báo lỗi ngay lập tức để bạn thấy rằng trong các sự kiện sau đó không?

+0

cảm ơn, nhưng con đường chiến tranh mà tôi muốn triển khai là 'https: // s3-us-west-2.amazonaws.com/mybucket/ROOT.war', nhưng khi tôi nhập tên này là S3- URL, nó không chấp nhận nó, tôi cũng đã thử với 'https: // s3.amazonaws.com/mybucket/ROOT.war' và' https: // mybucket.s3.amazonaws.com/ROOT.war' nhưng không có may mắn . Tôi đang làm gì sai? – thekosmix

+0

Điều đó là tốt ... trong url s3 trên S3Bucket là "mybucket" và khóa đối tượng là "ROOT.war". Nếu bạn đang tung ra một môi trường beanstalk đàn hồi ở phía tây-2, hãy đảm bảo rằng 'mybucket' cũng được tạo trong vùng 'us-west-2'. –

+0

thnx, tôi đã có thể triển khai nó, nhưng điều cuối cùng, làm thế nào tôi có thể triển khai phiên bản tiếp theo của ROOT.war? bước trên được thực hiện lần đầu tiên, làm thế nào tôi có thể triển khai phiên bản tiếp theo? – thekosmix

Các vấn đề liên quan