Implementar una aplicación web en Azure App Service
El azure-webapp-maven-plugin
tiene dos objetivos para los desarrolladores de Java: el primero es facilitar la administración y la configuración del complemento de Azure App Service, y el segundo es simplificar la implementación de proyectos de Maven en Azure App Service. En el ejercicio anterior, ha creado una aplicación web de Java de ejemplo "Hola mundo" rápida y la ha probado localmente. Agregar el complemento Maven para Azure App Service al proyecto le permite implementar la aplicación en Azure App Service.
En esta unidad, verá las opciones para que la empresa hospede sus aplicaciones en Azure App Service y, a continuación, aprenderá a agregar y configurar el azure-webapp-maven-plugin
en el proyecto de Maven.
Introducción a Azure App Service
Azure App Service permite hospedar los sitios web de la empresa, las aplicaciones web, las API de REST y otro código de aplicación en Azure. El código del proyecto se ejecuta en la nube; no tiene que aprovisionar ni configurar ninguna infraestructura. La ejecución de la aplicación web en Azure App Service le proporciona todas las ventajas de ejecutarse en Azure: la aplicación está disponible globalmente, se escala automáticamente, tiene la seguridad y el cumplimiento normativo, y solo paga por los recursos que usa.
Azure App Service admite varios lenguajes de programación, lo que permite a los desarrolladores seguir escribiendo sus aplicaciones mediante los lenguajes con los que se sienten más cómodos. Java es un ciudadano de primera clase, junto con otros lenguajes, como .NET Core, Python, Node.js, etc. Puede hospedar las aplicaciones web que cree en Linux, Windows o dentro de un contenedor de Docker. Antes de implementar la aplicación web en Azure, creará un plan de App Service en Azure que especifique el sistema operativo y el plan de tarifa, que determina el tamaño de los recursos de proceso aprovisionados que necesita su aplicación.
Flujos de trabajo Maven
Maven tiene tres ciclos de vida integrados para compilar proyectos: default
, clean
y site
, donde el ciclo de vida default
incluye las siguientes fases:
Fase | Descripción |
---|---|
compile |
Compila el código |
package |
Empaqueta el código en un archivo JAR o WAR |
install |
Instala el paquete en el repositorio local |
deploy |
Copia el paquete final en el repositorio remoto |
Pero cuando use el complemento Maven para Azure App Service, no utilizará la fase de implementación que se incluye con el ciclo de vida de default
de Maven. En su lugar, implementará la aplicación en Azure con el comando mvn azure-webapp:deploy
.
Agregar el complemento Maven para Azure App Service al proyecto
Para agregar el complemento Maven para Azure App Service a la aplicación web, agregaría el XML de azure-webapp-maven-plugin
al archivo pom.xml
del proyecto como el siguiente:
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>2.13.0</version>
</plugin>
Pero el complemento proporciona una forma cómoda e interactiva de agregar configuraciones al archivo POM:
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
El complemento le pedirá la información necesaria para configurar el plan de App Service. Después de confirmar las opciones, el complemento agrega el elemento del complemento anterior y la configuración necesaria al archivo pom.xml
del proyecto que configura la aplicación web para que se ejecute en Azure App Service.
Nota:
Compruebe la documentación de Azure App Service en el complemento Maven o el repositorio central de Maven para obtener información sobre la versión más reciente del complemento Maven.
Opciones de configuración
En la sección anterior de esta unidad se mostró cómo usar el complemento Maven para Azure App Service de forma interactiva para configurar la aplicación web. Pero no es necesario ejecutar la configuración de forma interactiva. Si quiere, puede agregar manualmente el código XML del complemento al archivo pom.xml
del proyecto.
El siguiente extracto anotado de un archivo pom.xml
demuestra algunos de los ajustes necesarios:
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>2.13.0</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<subscriptionId>aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e</subscriptionId>
<resourceGroup>learn-9c627899-58ae-4ef5-9630-3336ec7bce0c</resourceGroup>
<appName>MyWebApp-1610102860270</appName>
<pricingTier>S1</pricingTier>
<region>westus</region>
<runtime>
<os>Linux</os>
<javaVersion>Java 17</javaVersion>
<webContainer>Tomcat 10.0</webContainer>
</runtime>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.war</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
Algunas de las opciones de configuración pertinentes se encuentran en la tabla siguiente. Para obtener una lista completa de opciones, consulte la documentación del complemento Maven para Azure App Service.
Etiqueta | Opciones |
---|---|
<javaVersion> |
Linux admite las versiones 8, 11 y 17 Windows admite versiones 8, 11 y 17 |
<webContainer> |
Linux admite Tomcat, JBoss EAP 7.2 y Java SE Windows admite Tomcat y Java SE |
<resource> |
Especifica dónde se encuentra el archivo WAR o JAR en el proyecto |
Opciones de implementación
Si ya ha creado un plan de App Service, puede especificar la configuración de ese plan en el archivo pom.xml
. Al implementar la aplicación web en Azure, Maven usará esa configuración para implementar la nueva aplicación en el plan de App Service existente.
<!-- Deploy Web App to the existing App Service Plan -->
<appServicePlanResourceGroup>${PLAN_RESOURCEGROUP_NAME}</appServicePlanResourceGroup>
<appServicePlanName>${PLAN_NAME}</appServicePlanName>
Otra opción consiste en permitir que azure-webapp-maven-plugin
cree el plan de App Service cuando establezca la configuración del complemento de forma interactiva. Esta opción es el comportamiento predeterminado del complemento si no se especifica un plan de App Service existente en el archivo pom.xml
.
Independientemente de si decide crear el plan de App Service de forma interactiva o manual, use el mismo comando Maven para implementar el código de aplicación en Azure:
mvn package azure-webapp:deploy
En el siguiente ejercicio, implementará la aplicación web en Azure App Service.