Compartir vía


Implementación de una aplicación web de Quarkus en Azure App Service con Maven

En esta guía de inicio rápido se muestra cómo usar el complemento de Maven para Azure App Service Web Apps para implementar una aplicación de Quarkus en Azure App Service en Linux. Elija la implementación de Java SE en lugar de Tomcat y archivos WAR si desea consolidar las dependencias, el tiempo de ejecución y la configuración de su aplicación en un único artefacto desplegable.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos

Inicio de sesión en la CLI de Azure

La manera más sencilla y fácil de obtener el complemento Maven para implementar la aplicación de Quarkus es con la CLI de Azure.

Inicie sesión en su cuenta de Azure mediante la CLI de Azure:

az login

Siga las instrucciones para completar el proceso de inicio de sesión.

Creación de una aplicación de ejemplo desde MicroProfile Starter

En esta sección, creará una aplicación de Quarkus y la probará localmente.

Creación de un proyecto base de Java SE 8

  1. Abra un explorador web y vaya al sitio MicroProfile Starter.

    Captura de pantalla que muestra MicroProfile Starter con el tiempo de ejecución de Quarkus seleccionado.

  2. Proporcione los siguientes valores para los campos indicados:

    Campo Valor
    groupId com.microsoft.azure.samples.quarkus
    artifactId quarkus-hello-azure
    Versión de MicroProfile MP 3.2
    Versión de Java SE Java 8
    Entorno de ejecución de MicroProfile Quarkus
    Ejemplos de especificaciones Métricas, OpenAPI
  3. Seleccione DESCARGAR para descargar el proyecto.

  4. Descomprima el archivo comprimido con el siguiente comando:

    unzip Quarkus-hello-azure.zip
    

Creación de un proyecto base de Java SE 11

Para crear el proyecto base de Java 11, use el siguiente comando:

mvn io.quarkus:quarkus-maven-plugin:2.6.1.Final:create \
  -DprojectGroupId=com.microsoft.azure.samples.quarkus \
  -DprojectArtifactId=quarkus-hello-azure \
  -DclassName="com.microsoft.azure.samples.quarkus.App" \
  -Dpath="/hello"

Ejecución de la aplicación en un entorno local

  1. Cambie el directorio al proyecto completado mediante el comando siguiente:

    cd quarkus-hello-azure/
    
  2. Compile y ejecute el proyecto mediante el siguiente comando de Maven:

    mvn quarkus:dev
    
  3. Pruebe la aplicación web; para ello, vaya a ella localmente mediante un explorador web. Por ejemplo, puede usar el siguiente comando si tiene curl disponible:

    Para un proyecto de Java SE 8:

    curl http://localhost:8080/data/hello
    

    Para un proyecto de Java SE 11:

    curl http://localhost:8080/hello
    
  4. Debería ver el siguiente mensaje mostrado: hola mundo o hello.

Configuración del complemento maven para Azure App Service

En esta sección, configurará el proyecto Quarkus pom.xml archivo para que Maven pueda implementar la aplicación en Azure App Service en Linux.

  1. Abra el archivo pom.xml en un editor de código.

  2. En la sección <build> del archivo pom.xml, inserte la siguiente entrada <plugin> dentro de la etiqueta <plugins> después de maven-surefire-plugin.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.13.0</version>
    </plugin>
    
  3. Para configurar la implementación, ejecute el siguiente comando de Maven:

    mvn azure-webapp:config
    

    Seleccione las opciones siguientes cuando se le solicite:

    Campo de entrada Valor de la entrada o selección
    Elija una suscripción Escriba el identificador de la suscripción.
    Defina el valor para el sistema operativo (valor predeterminado: Linux): 2. linux
    Defina el valor para la versión de Java (valor predeterminado: Java 8): 2. Java 11
    Defina el valor de pricingTier (valor predeterminado: P1v2): 3. P1v2
    Confirme (S/N) y

    Esto genera una salida similar a la del siguiente ejemplo:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------< com.microsoft.azure.samples.quarkus:quarkus-hello-azure >-------
    [INFO] Building quarkus-hello-azure 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:2.13.0:config (default-cli) @ quarkus-hello-azure ---
    [INFO] Auth type: OAUTH2
    Username: abc@xyz.com
    Available subscriptions:
    *  1: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx)
       2: Subscription2(yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy)
    Please choose a subscription [xxx]: 1
    [INFO] Subscription: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx)
    Define value for OS [Linux]:
      1: Windows
    * 2: Linux
      3: Docker
    Enter your choice: 2
    Define value for javaVersion [Java 8]:
    * 1: Java 8
      2: Java 11
      3: Java 17
    Enter your choice: 2
    Define value for pricingTier [P1v2]:
      1: D1
      2: B3
    * 3: P1v2
      4: P1v3
      5: P2v2
      6: P2v3
      7: P3v2
      8: P3v3
      9: B1
     10: B2
     11: F1
     12: S1
     13: S2
     14: S3
     15: EP3
     16: EP2
     17: EP1
     18: Y1
     19: FC1
    Enter your choice: 3
    Please confirm webapp properties
    Subscription Id : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
    AppName : quarkus-hello-azure-1601011883156
    ResourceGroup : quarkus-hello-azure-1601011883156-rg
    Region : centralus
    PricingTier : P1v2
    OS : Linux
    Java : Java 11
    Web server stack: Java SE
    Deploy to slot : false
    Confirm (Y/N) [Y]:
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  16.502 s
    [INFO] Finished at: 2020-09-25T14:31:34+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. Agregue la sección <appSettings> a la sección <configuration> de PORT, WEBSITES_PORT y WEBSITES_CONTAINER_START_TIME_LIMIT. La entrada XML para azure-webapp-maven-plugin debe tener un aspecto similar al ejemplo siguiente:

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.13.0</version>
      <configuration>
        <schemaVersion>V2</schemaVersion>
        <resourceGroup>microprofile</resourceGroup>
        <appName>quarkus-hello-azure-1591836715762</appName>
        <pricingTier>P1v2</pricingTier>
        <region>centralus</region>
        <runtime>
          <os>linux</os>
          <javaVersion>java 11</javaVersion>
          <webContainer>java SE</webContainer>
        </runtime>
        <appSettings>
          <property>
            <name>PORT</name>
            <value>8080</value>
          </property>
          <property>
            <name>WEBSITES_PORT</name>
            <value>8080</value>
          </property>
          <property>
            <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name>
            <value>600</value>
          </property>
        </appSettings>
        <deployment>
          <resources>
            <resource>
              <directory>${project.basedir}/target</directory>
              <includes>
                <include>*.jar</include>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    </plugin>
    
  5. Agregue la siguiente entrada al archivo src/main/resources/application.properties para crear el uber-jar, también conocido como fat Jar:

    quarkus.package.type=uber-jar
    

Implementar la aplicación en Azure

Después de configurar todas las opciones de las secciones anteriores de este artículo, está listo para implementar la aplicación web en Azure. Para ello, siga estos pasos:

  1. Si realizó algún cambio en el archivo pom.xml, recompile el archivo JAR mediante el siguiente comando:

    mvn clean package
    
  2. Implemente la aplicación web en Azure con el siguiente comando:

    mvn azure-webapp:deploy
    

Si la implementación se realiza correctamente, verá la siguiente salida:

[INFO] Successfully deployed the artifact to https://quarkus-hello-azure-1591836715762.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:20 min
[INFO] Finished at: 2020-06-11T10:06:51+09:00
[INFO] ------------------------------------------------------------------------

Maven implementa la aplicación web en Azure. Si la aplicación web o el plan de la aplicación web no existen, se crearán automáticamente. Puede tardar unos minutos antes de que la aplicación web esté visible en la dirección URL que se muestra en la salida. Vaya a la dirección URL en un explorador web. Debería ver la siguiente pantalla:

Captura de pantalla del navegador web que muestra la página principal de Quarkus.

Una vez implementada la aplicación web, puede administrarla a través de Azure Portal.

La aplicación web se mostrará en el grupo de recursos microprofile.

Para acceder a tu aplicación web, selecciona Examinar en la página de información general de tu aplicación web. Compruebe que la implementación se haya realizado correctamente y esté en ejecución.

Confirme el flujo de registros desde el App Service en ejecución

Puede usar el siguiente comando para ver —o tail— los registros de la instancia de App Service en ejecución. Todas las llamadas a console.log en el código del sitio aparecen en el terminal.

az webapp log tail 
    --resource-group microprofile \
    --name quarkus-hello-azure-1601011883156

Captura de pantalla de la ventana del terminal que muestra el streaming de registro.

Limpieza de recursos

Cuando los recursos de Azure ya no sean necesarios, limpie los recursos que implementó eliminando el grupo de recursos. Para ello, siga estos pasos:

  1. En Azure Portal, seleccione grupo de recursos en el menú.
  2. Introduzca microprofile en el campo Filtro por nombre. El grupo de recursos creado en este tutorial debe tener este prefijo.
  3. Seleccione el grupo de recursos que creó en este tutorial.
  4. Seleccione Eliminar grupo de recursos en el menú.

Pasos siguientes

Para más información sobre MicroProfile y Azure, vaya a MicroProfile en el Centro de documentación de Azure.

Recursos adicionales

Para más información acerca de las diferentes tecnologías que se tratan en este artículo, consulte los artículos siguientes: