Compartir a través de


Implementación de una aplicación web de Open Liberty micro 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 Open Liberty en Azure App Service en Linux. Elija la implementación de Java SE en lugar de Tomcat y archivos WAR cuando quiera consolidar las dependencias, el entorno de ejecución y la configuración de su aplicación en un único artefacto implementable.

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

Importante

Aunque Azure App Service está diseñado, operado y respaldado por Microsoft, el software que se ejecuta sobre él está sujeto a su propio plan de soporte y sus términos de licencia. Para obtener más información sobre la compatibilidad con el software descrito en este artículo, consulte las páginas principales de ese software como se muestra en el artículo. Para obtener soporte técnico para Open Liberty, consulte la página de soporte técnico de Open Liberty. Para obtener soporte para WebSphere Liberty, consulte IBM Cloud Support.

Prerrequisitos

Inicio de sesión en la CLI de Azure

La forma más sencilla de usar el plugin Maven para implementar tu aplicación de Open Liberty es mediante el uso de 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 open Liberty y la probará localmente.

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

    Captura de pantalla que muestra MicroProfile Starter con Open Liberty runtime seleccionado.

  2. Use los valores de la tabla siguiente para rellenar los valores en MicroProfile Starter:

    Campo Valor
    groupId com.microsoft.azure.samples.openliberty
    artifactId openliberty-hello-azure
    Versión de MicroProfile MP 4.0
    Versión de Java SE Java 11
    Tiempo de ejecución de MicroProfile Open Liberty
    Ejemplos de especificaciones Métricas, OpenAPI
  3. Seleccione DESCARGAR para descargar el proyecto.

  4. Descomprima su archivo comprimido mediante el siguiente comando:

    unzip openliberty-hello-azure.zip
    

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

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

    cd openliberty-hello-azure/
    
  2. Compile el proyecto mediante Maven mediante el comando siguiente:

    mvn clean package
    
  3. Ejecute el proyecto mediante el siguiente comando:

    java -jar target/openliberty-hello-azure.jar
    
  4. Para probar la aplicación web, vaya a ella localmente mediante un explorador web. Por ejemplo, puede usar el siguiente comando si tiene curl disponible:

    curl http://localhost:9080/data/hello
    
  5. Debería ver el siguiente mensaje mostrado: Hello World

Configuración del complemento Maven para Azure App Service

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

  1. Para configurar la implementación, ejecute el siguiente comando de Maven:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.3.0:config
    

    Seleccione las siguientes opciones cuando se le solicite:

    Campo de entrada Entrada/Seleccionar valor
    Defina el valor del sistema operativo (valor predeterminado: Linux): 1. Linux
    Definir valor para javaVersion(Valor predeterminado: Java 8): 2. Java 11
    Defina el valor de runtimeStack(Default: TOMCAT 8.5): 2. TOMCAT 8.5
    Confirmar (Y/N) y

    Nota

    Aunque no usemos Tomcat, seleccione TOMCAT 8.5 en este momento. Durante la configuración detallada, modifique el valor de TOMCAT 8.5 a Java.

    En este ejemplo se usa una versión específica del complemento Maven de Azure App Service. Considere la posibilidad de usar la versión más reciente disponible. Puede detectar el número de la versión más reciente visitando un sitio como mvnrepository.com.

    Este comando genera una salida similar a la del ejemplo siguiente:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >----
    [INFO] Building openliberty-hello-azure 1.0-SNAPSHOT
    [INFO] --------------------------------[ war ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:2.3.0:config (default-cli) @ openliberty-hello-azure ---
    Auth type: AZURE_CLI
    Default subscription:
    Username:
    [INFO] Subscription:
    [INFO] It may take a few minutes to load all Java Web Apps, please be patient.
    Define value for OS [Linux]:
      1: Windows
    * 2: Linux
      3: Docker
    Enter your choice:
    Define value for javaVersion [Java 8]:
    * 1: Java 8
      2: Java 11
    Enter your choice: 2
    Define value for webContainer [Tomcat 8.5]:
      1: Jbosseap 7
    * 2: Tomcat 8.5
      3: Tomcat 9.0
    Enter your choice:
    Define value for pricingTier [P1v2]:
      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:
    Please confirm webapp properties
    Subscription Id : ********-****-****-****-************
    AppName : openliberty-hello-azure-1642075767899
    ResourceGroup : openliberty-hello-azure-1642075767899-rg
    Region : centralus
    PricingTier : P1v2
    OS : Linux
    Java : Java 11
    Web server stack: Tomcat 8.5
    Deploy to slot : false
    Confirm (Y/N) [Y]:
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  21.981 s
    [INFO] Finished at: 2022-01-13T21:09:39+09:00
    [INFO] ------------------------------------------------------------------------
    
  2. Modifique el archivo server.xml en el directorio /src/main/liberty/config/ para ejecutar la aplicación en Azure Web Apps. En el archivo, agregue la línea host="*" en la etiqueta <httpEndpoint>, como se muestra en el ejemplo siguiente:

    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="9080"
                  httpsPort="9443"/>
    
  3. Modifique la entrada de runtime de TOMCAT 8.5 a javay el deployment de *.war a *.jar en el archivo pom.xml. A continuación, agregue la sección <appSettings> a la sección <configuration> de PORT, WEBSITES_PORTy 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.3.0</version>
      <configuration>
        <schemaVersion>v2</schemaVersion>
        <subscriptionId>********-****-****-****-************</subscriptionId>
        <resourceGroup>openliberty-hello-azure-1642075767899-rg</resourceGroup>
        <appName>openliberty-hello-azure-1642075767899</appName>
        <pricingTier>P1v2</pricingTier>
        <region>japaneast</region>
        <runtime>
          <os>Linux</os>
          <javaVersion>Java 11</javaVersion>
          <webContainer>java</webContainer>
        </runtime>
      <appSettings>
        <property>
          <name>PORT</name>
          <value>9080</value>
        </property>
          <property>
          <name>WEBSITES_PORT</name>
          <value>9080</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>
    

Implementación de 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. En el símbolo del sistema o la ventana de terminal que usó anteriormente, vuelva a compilar el archivo JAR con Maven si ha realizado algún cambio en el archivo pom.xml. con el siguiente comando:

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

    mvn azure-webapp:deploy
    

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

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >----
    [INFO] Building openliberty-hello-azure 1.0-SNAPSHOT
    [INFO] --------------------------------[ war ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:2.3.0:deploy (default-cli) @ openliberty-hello-azure ---
    Auth type: AZURE_CLI
    [INFO] Creating web app openliberty-hello-azure-1642075767899...
    [INFO] Successfully created Web App openliberty-hello-azure-1642075767899.
    [INFO] Trying to deploy external resources to openliberty-hello-azure-1642075767899...
    [INFO] Successfully deployed the resources to openliberty-hello-azure-1642075767899
    [INFO] Trying to deploy artifact to openliberty-hello-azure-1642075767899...
    [INFO] Deploying (/Users/Downloads/openliberty-hello-azure/target/openliberty-hello-azure.jar)[jar]  ...
    [INFO] Successfully deployed the artifact to https://openliberty-hello-azure-1642075767899.azurewebsites.net
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:11 min
    [INFO] Finished at: 2022-01-13T21:29:50+09:00
    [INFO] ------------------------------------------------------------------------
    

Maven implementa la aplicación web en Azure. Si la aplicación web o el plan de aplicación web aún no existen, se crean para ti. 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 explorador web que muestra la página principal de Open Liberty.

Una vez implementada la aplicación, puede administrarla a través de Azure Portal. La aplicación web aparece en el grupo de recursos. Para acceder a su aplicación web, seleccione Examinar en la página Información general de su aplicación web. Compruebe que la implementación se ha realizado correctamente y está en ejecución.

Confirma el flujo de registros del App Service en ejecución

Puede ver todos los registros o usar tail para ver el final de los registros desde 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 openliberty-hello-azure-1642075767899-rg \
    --name openliberty-hello-azure-1642075767899

Captura de pantalla de la ventana de terminal que muestra el flujo de registro.

Limpieza de recursos

Cuando los recursos de Azure ya no sean necesarios, limpie los recursos que implementó mediante la eliminación del grupo de recursos mediante los pasos siguientes:

  1. En Azure Portal, seleccione Resource group 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 creado en este tutorial.
  4. Seleccione Eliminar grupo de recursos en el menú.

Pasos siguientes

Para más información sobre MicroProfile y Azure, continúe con el Centro de documentación de MicroProfile en Azure.

Recursos adicionales

Para obtener más información sobre las distintas tecnologías que se describen en este artículo, consulte los siguientes artículos: