Implementar una aplicación web en Azure App Service

Completado

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, cleany 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.2.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.2.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.2.0</version>  
  <configuration> 
    <schemaVersion>v2</schemaVersion>  
    <subscriptionId>11111111-1111-1111-1111-111111111111</subscriptionId>  
    <resourceGroup>learn-9c627899-58ae-4ef5-9630-3336ec7bce0c</resourceGroup>  
    <appName>MyWebApp-1610102860270</appName>  
    <pricingTier>F1</pricingTier>  
    <region>westus</region>  
    <runtime> 
      <os>Linux</os>  
      <javaVersion>Java 8</javaVersion>  
      <webContainer>Tomcat 8.5</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 y 11
Windows admite la versión 1.7 hasta 11
<webContainer> Linux admite Tomcat, Wildfly y Java SE
Windows admite Tomcat y Jetty
<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.