5

Ich habe 2 AWS-Maschinen, 1.dev (ec2) 2. prod (elastic beanstalk). Ich baue und deploy auf dev (machine1) nach jedem Commit, die zu einer WAR-Datei führt (die auch in einem S3-Bucket mit s3cmd-Tool hochgeladen wird). Dann teste ich den neu eingesetzten Krieg auf der Dev-Maschine, wenn es in Ordnung scheint, dann lade ich den Krieg von dev (ec2) herunter und lade ihn dann auf die prod-Maschine hoch (Elastic beanstalk).Bereitstellen von Krieg von S3 zu AWS Elastic Beanstalk

Gibt es eine Möglichkeit, elastisches Bohnenranke herzustellen, um den Krieg direkt aus dem S3-Eimer zu nehmen, anstatt es von ec2 herunterzuladen und dann auf elastischen Bohnenranke hochzuladen?

Ich habe versucht, neue Umgebung zu erstellen und gab dann s3 Bucket Pfad für die Anwendungsversion, aber es funktioniert nicht. (gab einen Fehler, der sagt "das kann nur in VPC getan werden").

Antwort

15

Ich habe die beste Antwort in this post bekam:

es erfordert 3 einfachen Schritten AWS CLI mit:

  1. Upload S3 Eimer: aws s3 cp/var/lib/tomcat7/webapps /ROOT.war s3: // elasticbeanstalk-ap-Südost-1- xxxxxx/myROOT.war
  2. erstellen Anwendungsversion: aws elasticbeanstalk cre aß-application-Version --Anwendung-name your_app_name --version-label your_version_label --source Bündel s3Bucket = elasticbeanstalk-ap-Südost-1- xxxxxx, S3Key = myROOT.war
  3. Ihrer Umgebung aktualisieren: aws elasticbeanstalk update-Umgebung --environment-name your_app_name --version-label your_version_label

Ich habe eine bash script erstellt, die für alle oben genannten Schritte nur 3 Sekunden dauert. Gehen Sie durch den Link für eine aussagekräftigere Antwort.

+0

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

2

Wenn Ihre s3-WAR-Datei in mybucket/test/myapp.war ist, dann erstellen Sie eine Anwendungsversion mit dem s3-Bucket als mybucket und test/myapp.war ist der Weg, es zu tun. Nicht sicher, warum Sie den VPC-bezogenen Fehler erhalten. Wann und wo siehst du diesen Fehler? Wenn Sie eine Anwendungsversion erstellen oder eine Umgebung erstellen? Ruft der API-Aufruf die Fehlermeldung sofort auf, sehen Sie das später in den Ereignissen?

+0

danke, aber der Weg des Krieges, den ich bereitstellen möchte, ist "https: // s3-us-west-2.amazonaws.com/mybucket/ROOT.war", aber wenn ich dies als S3- eingeben URL, es akzeptiert es nicht, ich versuchte es auch mit 'https: // s3.amazonaws.com/mybucket/ROOT.war' und' https: // mybucket.s3.amazonaws.com/ROOT.war', aber kein Glück . Was mache ich falsch? – thekosmix

+0

Das ist in Ordnung ... in der s3-URL über S3Bucket ist "mybucket", und Objektschlüssel ist "ROOT.war". Wenn Sie in us-west-2 eine Elastic Beanstalk-Umgebung starten, stellen Sie sicher, dass "mybucket" auch in der Region "us-west-2" erstellt wird. –

+0

Thnx, ich konnte es bereitstellen, aber letzte Sache, wie kann ich nächste Version von ROOT.war bereitstellen? Der obige Schritt wird zum ersten Mal durchgeführt. Wie kann ich die nächste Version bereitstellen? – thekosmix

Verwandte Themen