Implementación de una aplicación web Java en Amazon Elastic Beanstalk

Mi equipo está desarrollando una aplicación web Java que se implementará en Amazon Elastic Beanstalk. El entorno de desarrollo es Eclipse y Subversion. Pudieron implementarlo usando el complemento de Eclipse, pero para automatizar la implementación, estoy experimentando con las herramientas CLI proporcionadas por Amazon.

Básicamente, seguí los pasos detallados en el Publicación del blog de Amazon después de convertir el repositorio de subversion en un repositorio de git. Seguí los pasos explicados en esta SO respuesta

Después de seguir los pasos anteriores, emití el comando git aws.push, que se completa con éxito. Pero al ejecutar la aplicación, hay errores y . Así que descargué el archivo war del entorno Beanstalk y descubrí que la estructura de carpetas está desordenada y los archivos fuente no están compilados en archivos de clase. Parece que los archivos de origen se cargan como tales.

¿Necesito compilar la aplicación (usando ant) ​​antes de usar aws.push? ¿O me estoy perdiendo algo?

preguntado el 04 de julio de 12 a las 10:07

¿Por qué no implementar directamente el archivo war con upload and deploy en habichuelas mágicas elásticas? -

En ese momento, necesitaba una función de implementación incremental y usar aws.push es muy rápido:

@DeepakMishra, ¿tiene más información sobre cómo cargar e implementar un archivo de guerra a través de la CLI? Estamos construyendo nuestros archivos de guerra y queremos enviarlos, en lugar de enviarlos desde Git. -

3 Respuestas

Parece que ahora tengo la respuesta a mi pregunta.

aws.push no es solo para aplicaciones PHP, sino que también se puede usar para implementar aplicaciones Java y PHP. He usado con éxito junto con Hormiga Apache y la configuración funciona bien en nuestro entorno UAT.

Desarrollé un script de shell que hace lo siguiente:

  1. Consulte el código fuente del repositorio de Subversion
  2. Cree y cree un archivo WAR usando Apache Ant
  3. Expanda el archivo WAR a un repositorio de git (inicializado con las herramientas de Amazon EB)
  4. Agregue los archivos explotados al repositorio de git y confirme los cambios.
  5. Utilice aws.push para implementar el archivo war en EB.

(No tengo acceso al script de shell en este momento, por lo que es posible que no pueda proporcionar los comandos detallados)

Aquí está el Shell Script en la forma básica

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

Hay un problema conocido con este script relacionado con los archivos de clase obsoletos. Para salirse con la suya, es posible que tenga que limpiar el repositorio de git.

Aquí está el objetivo de la hormiga:

<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>

respondido 14 nov., 12:09

¿Cuándo haces esto? ¿Elastic Beanstalk aún incluye el WAR ampliado para que puedas alternar entre versiones? - Ken Liu

Sí, puede cambiar entre las versiones. - Libregeek

@AaronGreenlee Estoy feliz de compartir el guión, pero estaba demasiado ocupado. Lo intentaré pronto. - Libregeek

Si estás usando Maven y habichuelas, la funcionalidad equivalente de git aws.push podría resumirse en un solo comando, independientemente de si está usando git o no.

$ mvn package beanstalk:fast-deploy

pero asegúrate de que tu el pom esta listo

Respondido 10 Feb 14, 23:02

Tuve el mismo problema: parece que el método git solo está diseñado para funcionar con aplicaciones PHP.

Actualmente estoy buscando alguna otra herramienta basada en Java, ya que no uso Eclipse, y la consola de AWS es una forma torpe de administrar los lanzamientos (y las cargas son muy lentas).

Respondido 28 Jul 12, 18:07

No se hacen más preguntas en las respuestas, se pueden agregar comentarios para aclarar/preguntar cosas. - Rndm

Las compilaciones -SNAPSHOT de maven-beanstalk-plugin incluyen soporte experimental para la implementación basada en git de proyectos basados ​​en maven: aldrinleal

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.