Implementación de una aplicación web open Liberty Micro en App de Azure Service con Maven
En este inicio rápido, usará el complemento Maven para App de Azure Service Web Apps para implementar una aplicación open Liberty en App de Azure Service en Linux. Elegirá la implementación de Java SE en lugar de Tomcat y archivos WAR cuando desee consolidar las dependencias, el entorno de ejecución y la configuración de la aplicación en un único artefacto implementable.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Importante
Aunque el servicio App de Azure está diseñado, operado y compatible con Microsoft, el software que se ejecuta sobre él está sujeto a sus propios términos de soporte técnico y soporte técnico del plan de soporte técnico. Para más información sobre la compatibilidad del software que se describe en este artículo, consulte las páginas principales del software que se enumeran 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 técnico para WebSphere Liberty, consulte IBM Cloud Support.
Requisitos previos
- La CLI de Azure, ya sea localmente o con Azure Cloud Shell.
- Un kit de desarrollo de Java (JDK) admitido Para más información sobre los JDK disponibles para desarrollar en Azure, consulte Compatibilidad con Java en Azure y Azure Stack.
- Apache Maven, versión 3.
Inicio de sesión en la CLI de Azure
La manera más sencilla y sencilla de obtener el complemento maven que implementa la aplicación Open Liberty es mediante la CLI de Azure.
Inicie sesión en la 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.
Abra un explorador web y acceda al sitio web de MicroProfile Starter.
Use los valores de la tabla siguiente para rellenar MicroProfile Starter.
Campo Value groupId com.microsoft.azure.samples.openliberty artifactId openliberty-hello-azure Versión de MicroProfile MP 4.0 Versión de Java SE Java 11 Entorno de ejecución de MicroProfile Open Liberty Ejemplos de especificaciones Métricas, OpenAPI Seleccione DESCARGAR para descargar el proyecto.
Descomprima el archivo de almacenamiento; por ejemplo:
unzip openliberty-hello-azure.zip
Ejecución de la aplicación en el entorno local
Cambie de directorio al del proyecto finalizado, por ejemplo:
cd openliberty-hello-azure/
Compile el proyecto con Maven; por ejemplo:
mvn clean package
Ejecute el proyecto; por ejemplo:
java -jar target/openliberty-hello-azure.jar
Pruebe la aplicación web. Para ello, navegue a ella localmente mediante un explorador web. Por ejemplo, puede utilizar el siguiente comando si dispone de curl:
curl http://localhost:9080/data/hello
Debería ver el siguiente mensaje mostrado: Hola mundo
Configuración del complemento de 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 App de Azure Service en Linux.
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 opciones siguientes cuando se le solicite:
Campo de entrada Valor de la entrada o selección 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 Confirme (S/N) y
Nota:
Aunque no usemos Tomcat, seleccione TOMCAT 8.5
en este momento. Durante la configuración detallada, modificará el valor de TOMCAT 8.5
a Java
.
En este ejemplo se usa una versión específica del complemento App de Azure Service Maven. 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.
Esto genera una salida similar a la del siguiente ejemplo:
[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] ------------------------------------------------------------------------
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
host="*"
línea en la<httpEndpoint>
etiqueta , como se muestra en el ejemplo siguiente:<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443"/>
Modifique la
runtime
entrada deTOMCAT 8.5
a yjava
desdedeployment
*.war
a*.jar
en el archivo pom.xml . A continuación, agregue la<appSettings>
sección a la<configuration>
sección dePORT
,WEBSITES_PORT
yWEBSITES_CONTAINER_START_TIME_LIMIT
. La entrada XML deazure-webapp-maven-plugin
tendrá 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>
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:
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; por ejemplo:
mvn clean package
Implemente la aplicación web en Azure mediante Maven; por ejemplo:
mvn azure-webapp:deploy
Si la implementación se realizó correctamente, verá la salida 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: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 implementará la aplicación web en Azure. Si la aplicación web o el plan de aplicación web aún no existen, se creará 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.
Cuando la aplicación se haya implementado, puede administrarla a través de Azure Portal.
La aplicación web se mostrará en el grupo de recursos.
Para acceder a la aplicación web, seleccione Examinar en la página Información general de la aplicación web. Compruebe que la implementación se ha realizado correctamente y está en ejecución.
Confirmación del flujo de registro desde la instancia de App Service en ejecución
En este paso, verá (o podrá "consultar el final de") 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 openliberty-hello-azure-1642075767899-rg \
--name openliberty-hello-azure-1642075767899
Limpieza de recursos
Cuando los recursos de Azure ya no sean necesarios, limpie los recursos que implementó eliminando el grupo de recursos.
- En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
- Escriba microprofile en el campo Filtrar por nombre, el grupo de recursos creado en este tutorial debe tener este prefijo.
- Seleccione el grupo de recursos que creó en este tutorial.
- Seleccione Eliminar grupo de recursos del menú superior.
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: