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. 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.
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 fácil de obtener el complemento Maven para implementar la aplicación de Quarkus es con 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 de Quarkus y la probará localmente.
Creación de un proyecto base de Java SE 8
Abra un explorador web y acceda al sitio web de MicroProfile Starter.
Proporcione los siguientes valores para los campos indicados.
Campo Value 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 Seleccione DESCARGAR para descargar el proyecto.
Descomprima el archivo de almacenamiento; por ejemplo:
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 el entorno local
Cambie de directorio al del proyecto finalizado, por ejemplo:
cd quarkus-hello-azure/
Compile y ejecute el proyecto con Maven; por ejemplo:
mvn quarkus:dev
Pruebe la aplicación web; para ello, vaya a ella localmente mediante un explorador web. Por ejemplo, puede utilizar el siguiente comando si dispone de curl:
Para el proyecto de Java SE 8:
curl http://localhost:8080/data/hello
Para el proyecto de Java SE 11:
curl localhost:8080/hello
Debería ver el siguiente mensaje mostrado: Hola mundo o hello
Configuración del complemento de Maven para Azure App Service
En esta sección, configurará el archivo pom.xml del proyecto de Quarkus para que Maven pueda implementar la aplicación en Azure App Service en Linux.
Abra el archivo pom.xml en un editor de código.
En la sección
<build>
del archivo pom.xml, inserte la siguiente entrada<plugin>
dentro de la etiqueta<plugins>
después demaven-surefire-plugin
.<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.5.0</version> </plugin>
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 suscripción. Defina el valor del sistema operativo (valor predeterminado: Linux): 2. Linux Definir valor para javaVersion(Valor predeterminado: Java 8): 2. Java 11 Defina el valor de pricingTier(Default: P1v2): 9. 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.5.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: 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: 9 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] ------------------------------------------------------------------------
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.5.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>
Agregue la siguiente entrada al archivo src/main/resources/application.properties para crear el archivo jar de Uber (FAT).
quarkus.package.type=uber-jar
Implementar la aplicación en Azure
Una vez que haya configurado todas las opciones de las secciones anteriores de este artículo, estará listo para implementar la aplicación web en Azure. Para ello, siga estos pasos:
Si ha realizado algún cambio en el archivo pom.xml, vuelva a generar el archivo JAR con el siguiente comando:
mvn clean package
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 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 se haya implementado la aplicación web, puede administrarla a través de Azure Portal.
La aplicación web se mostrará en el grupo de recursos de microprofile .
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 haya 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 microprofile \
--name quarkus-hello-azure-1601011883156
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: