5

Ho 2 macchine AWS, 1.dev (ec2) 2. prod (elastic beanstalk). Io costruisco e distribuisco su dev (machine1) dopo ogni commit che risulta in un file war (che sarà anche caricato su un bucket S3 usando lo strumento s3cmd). Poi provo la nuova guerra su dev machine, se sembra a posto, quindi scarico la guerra da dev (ec2) e poi la carica sulla macchina prod (Elastic beanstalk).Distribuire la guerra da S3 a AWS Elastic Beanstalk

C'è un modo per rendere beanstalk elastico per prendere la guerra direttamente dal bucket S3, piuttosto che scaricarlo da ec2 e quindi caricarlo su beanstalk elastico?

Ho provato a creare un nuovo ambiente e poi ho fornito il percorso bucket s3 per la versione dell'applicazione, ma non funziona. (ha dato qualche errore dicendo "questo può essere fatto solo in VPC").

risposta

15

ho ottenuto la migliore risposta in this post:

Richiede 3 semplici passaggi utilizzando AWS CLI:

  1. Carica a S3 secchio: AWS s3 cp/var/lib/tomcat7/webapps /ROOT.war S3: // elasticbeanstalk-ap-sud-est-1- xxxxxx/myROOT.war
  2. Crea versione dell'applicazione: aws elasticbeanstalk cre ate-application-versione --application-nome your_app_name --version-label your_version_label --source-fascio S3Bucket = elasticbeanstalk-ap-sud-est-1- xxxxxx, S3Key = myROOT.war
  3. Aggiorna il tuo ambiente: AWS elasticbeanstalk update-ambiente --environment-nome your_app_name --version-label your_version_label

Ho creato un bash script, che richiede solo 3 secondi per tutti i passaggi precedenti. Passare attraverso il link per una risposta più descrittiva.

+0

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

2

Se il file di guerra s3 è in mybucket/test/myapp.war, quindi creare una versione dell'applicazione con il bucket s3 come mybucket e test/myapp.war è il modo per farlo. Non sei sicuro del motivo per cui ricevi l'errore relativo al VPC. Quando e dove vedi questo errore? Quando si crea una versione dell'applicazione o quando si crea un ambiente? La chiamata all'API lancia il messaggio di errore immediatamente lo vedi negli eventi successivi?

+0

grazie, ma il percorso di guerra che voglio distribuire è 'https: // s3-us-west-2.amazonaws.com/mybucket/ROOT.war', ma quando inserisco questo come S3- URL, non lo accetta, ho anche provato con 'https: // s3.amazonaws.com/mybucket/ROOT.war' e' https: // mybucket.s3.amazonaws.com/ROOT.war' ma senza fortuna . Che cosa sto facendo di sbagliato? – thekosmix

+0

Questo va bene ... nell'URL s3 sopra S3Bucket è "mybucket" e la chiave dell'oggetto è "ROOT.war". Se stai lanciando un ambiente di beanstalk elastico in us-west-2, assicurati che anche 'mybucket' venga creato nella regione 'us-west-2'. –

+0

thnx, sono stato in grado di distribuirlo, ma l'ultima cosa, come posso distribuire la prossima versione di ROOT.war? il passaggio precedente viene eseguito per la prima volta, come posso distribuire la prossima versione? – thekosmix

Problemi correlati