Ejercicio: Implementación de una aplicación web en Azure App Service

Completado

En esta unidad, implementará la aplicación web de Java Tomcat en Azure App Service.

Complemento Maven para Azure App Service

Microsoft proporciona a los desarrolladores de Java el complemento Maven para Azure App Service para facilitar la implementación de aplicaciones en Azure. Con este complemento, puede configurar e implementar fácilmente la aplicación en Azure. Siga los pasos descritos en las secciones siguientes para configurar el complemento, compilar el código fuente e implementar la aplicación.

Configurar el complemento Maven para Azure App Service

Para configurar el complemento maven para Azure App Service, siga estos pasos:

  1. Comience la configuración mediante el comando siguiente:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. Después de usar el comando, aparece una serie de preguntas en la línea de comandos, lo que le permite configurar varias opciones. Configure las opciones y los valores según la información de la tabla siguiente:

    Elemento Valor de entrada
    Suscripción Elija la suscripción de Azure.
    Defina el valor para el sistema operativo Linux
    Defina el valor del plan de tarifa B1
    Defina el valor de la versión de Java Java 21
    Defina el valor de la pila de tiempo de ejecución TOMCAT 10.0
    Confirme (S/N) S

    Después de configurar las opciones, la salida siguiente es típica:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    [INFO] Scanning for projects...
    [INFO]
    [INFO] -------------------< com.example:simple-tomcat-app >--------------------
    [INFO] Building simple-tomcat-app 1.0-SNAPSHOT
    [INFO]   from pom.xml
    [INFO] --------------------------------[ war ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp:2.10.0:config (default-cli) @ simple-tomcat-app ---
    Downloading from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml
    Downloading from ossrh: https://oss.sonatype.org/content/repositories/snapshots/net/minidev/json-smart/maven-metadata.xml
    Downloading from shibboleth-repo: https://build.shibboleth.net/nexus/content/repositories/releases/net/minidev/json-smart/maven-metadata.xml
    Downloaded from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml (1.3 kB at 6.3 kB/s)
    Please choose which part to config [Application]:
    * 1: Application
      2: Runtime
      3: DeploymentSlot
    Enter your choice: 1
    Define value for appName [simple-tomcat-app]: tomcatmavendemo
    Define value for resourceGroup [tomcatmavendemo-rg]: MyResourceGroup
    Define value for region [{azure.region}]: centralus
    Define value for pricingTier [B1]:
    *  1: B1
       2: B2
       3: B3
       4: D1
       5: EP1
       6: EP2
       7: EP3
       8: F1
       9: P1v2
      10: P1v3
      11: P2v2
      12: P2v3
      13: P3v2
      14: P3v3
      15: S1
      16: S2
      17: S3
      18: Y1
    Enter your choice: 1
    Please confirm webapp properties
    AppName : tomcatmavendemo
    ResourceGroup : MyResourceGroup
    Region : centralus
    PricingTier : B1
    OS : Linux
    Java Version: 21
    Web server stack: Tomcat 10.1
    Deploy to slot : false
    Confirm (Y/N) [Y]: Y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:49 min
    [INFO] Finished at: 2024-11-07T09:54:55-08:00
    [INFO] ------------------------------------------------------------------------
    
  3. El archivo pom.xml ahora contiene una nueva sección en la <plugins> sección . Si desea cambiar el nombre del grupo de recursos, el nombre de instancia o la ubicación de implementación, cambie los valores de los <resourceGroup>elementos , <appName>o <region> . En el ejemplo siguiente se muestra un archivo pom.xml típico:

          <!-- Azure Web App Maven Plugin -->
    <plugin>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-webapp-maven-plugin</artifactId>
        <version>2.10.0</version>
        <configuration>
            <resourceGroup>MyResourceGroup</resourceGroup>
            <appName>tomcatmavendemo</appName>
            <region>centralus</region>
            <pricingTier>B1</pricingTier>
            <runtime>
                <os>linux</os>
                <javaVersion>21</javaVersion>
                <webContainer>Tomcat 10.1</webContainer>
            </runtime>
            <deployment>
                <resources>
                    <resource>
                        <directory>${project.build.directory}</directory>
                        <includes>
                            <include>*.war</include>
                        </includes>
                    </resource>
                </resources>
            </deployment>
        </configuration>
    </plugin>
    

Compilación e implementación en Azure App Service

Ahora que finalizó la configuración de la implementación en Azure App Service, siga estos pasos para compilar el código fuente e implementar la aplicación en Azure App Services:

  1. Vuelva a compilar el código fuente mediante el comando siguiente:

    mvn clean package
    
  2. Una vez compilado el código fuente, use el siguiente comando para implementar la aplicación:

    mvn azure-webapp:deploy
    

Una vez completada la implementación, la salida siguiente es típica:

[INFO] Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:55 min
[INFO] Finished at: 2024-11-07T10:05:19-08:00
[INFO] ------------------------------------------------------------------------

Como puede ver, esa salida proporciona la dirección URL pública de la aplicación implementada: Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net.

Al navegar a la aplicación, debería ser similar a la captura de pantalla siguiente:

Captura de pantalla que muestra la aplicación web implementada en un explorador.

Confirmación del flujo de registro

Para acceder a la secuencia de registro, use el siguiente comando:

az webapp log tail \
    --resource-group <your-resource-group> \
    --name <your-app-name>

La salida siguiente es típica:

2024-11-07T18:14:37  Welcome, you are now connected to log-streaming service.
Starting Log Tail -n 10 of existing logs ----
/appsvctmp/volatile/logs/runtime/container.log
2024-11-07T18:06:05.3874260Z  java.base/java.lang.Thread.run(Thread.java:1583)
2024-11-07T18:06:05.5635356Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.5636042Z INFO: Stopping ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6020767Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.6021438Z INFO: Stopping ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.6423756Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6424403Z INFO: Destroying ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6893602Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6894311Z INFO: Destroying ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.7849816Z Done processing signal SIGTERM. Exiting now!
Ending Log Tail of existing logs ---
Starting Live Log Stream ---

Resumen del ejercicio

En esta unidad, ha aprendido a crear una aplicación web de Tomcat mediante Maven. También ha aprendido a crear un servlet y cómo funciona. A continuación, ha implementado la aplicación web localmente mediante Tomcat. Por último, has implementado en Azure App Service para que cualquiera en el mundo pueda acceder.