Déploiement d'une application Web Java sur Amazon Elastic Beanstalk


Mon équipe développe une application Web Java qui doit être déployée dans Amazon Elastic Beanstalk. L'environnement de développement est Eclipse et Subversion. Ils ont pu le déployer à l'aide du plugin Eclipse, mais pour automatiser le déploiement, j'expérimente avec les outils CLI fournis par Amazon.

Fondamentalement, j'ai suivi les étapes détaillées dans leArticle de blog Amazon après avoir converti le dépôt subversion en dépôt git. J'ai suivi les étapes décrites dans le cette réponse SO

Après avoir suivi les étapes ci-dessus, j'ai émis la commande git aws.push , qui est terminé avec succès. Mais lors de l'exécution de l'application, il y a des erreurs et . J'ai donc téléchargé le fichier war à partir de l'environnement Beanstalk et j'ai constaté que la structure des dossiers est foirée et que les fichiers source ne sont pas compilés en fichiers de classe. Il semble que les fichiers source soient téléchargés en tant que tels.

Dois-je construire l'application(en utilisant ant) avant d'utiliser aws.pousser? Ou est-ce que je manque quelque chose?

Author: Community, 2012-07-04

3 answers

Il semble maintenant que j'ai la réponse à ma question.

Aws.push n'est pas seulement pour les applications PHP, il peut également être utilisé pour déployer des applications Java et PHP. J'ai utilisé avec succès avec Apache Ant et la configuration fonctionne bien dans notre environnement UAT.

J'ai développé un script shell qui fait ce qui suit:

  1. Consultez le code source du dépôt subversion
  2. Construire et créer un fichier WAR à l'aide d'Apache Ant
  3. Exploser le fichier WAR dans un référentiel git (initialisé à l'aide d'Amazon Outils EB)
  4. Ajoutez les fichiers éclatés au dépôt git et validez les modifications.
  5. Utiliser aws.pousser pour déployer le fichier war sur EB.

(Je n'ai pas accès au script shell pour le moment, donc je ne pourrai peut-être pas fournir les commandes détaillées)

Voici le script Shell sous la forme de base

source_dir="/home/libregeek/myapp"
workingcopy="$source_dir/trunk"
gitrepo="$source_dir/gitrepo"
cd $workingcopy
svn update
ant createwar
cd $gitrepo
unzip -o $workingcopy/build/myapp.war
git add *
git commit -m "Deployed new version"
git aws.push

Il y a un problème connu avec ce script lié à vicié les fichiers de classe. Pour vous en sortir, vous devrez peut-être nettoyer le dépôt git.

Voici la cible ant:

<target name="createwar" depends="build" description="Create WAR file for deployment">
<war destfile="${alternate.path}/${name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</war>
</target>
 6
Author: libregeek, 2012-11-14 09:28:22

Vous utilisez Maven et Beanstalker, la fonctionnalité équivalente de git aws.push peut être repris à une seule commande, que vous utilisiez git ou non.

$ mvn package beanstalk:fast-deploy

, Mais assurez-vous que votre pom est prêt

 1
Author: aldrinleal, 2014-02-10 23:03:46

J'ai eu le même problème - il semble que la méthode git soit uniquement conçue pour fonctionner avec des applications PHP.

Je suis actuellement à la recherche d'un autre outil basé sur Java, car je n'utilise pas Eclipse, et la console AWS est un moyen maladroit de gérer les versions (et les téléchargements sont très lents).

 -1
Author: Reid, 2012-07-28 17:22:39