Distribuire un'app Web Quarkus nel servizio app di Azure con Maven
In questa guida introduttiva, utilizzerai il plug-in Maven per le App Web del Servizio App di Azure per distribuire un'applicazione Quarkus su Azure App Service su Linux. È consigliabile scegliere la distribuzione java SE su file Tomcat e WAR quando si vogliono consolidare le dipendenze, il runtime e la configurazione dell'app in un singolo artefatto distribuibile.
Se non hai un abbonamento Azure, crea un account gratuito prima di iniziare.
Prerequisiti
- L'interfaccia a riga di comando di Azure , utilizzabile localmente oppure tramite Azure Cloud Shell.
- Un JDK (Java Development Kit) supportato. Per altre informazioni sui JDK disponibili per lo sviluppo in Azure, vedere supporto Java in Azure e Azure Stack.
- Apache Maven, versione 3.
Accedere ad Azure CLI
Il modo più semplice e facile per utilizzare il plug-in Maven per distribuire l'applicazione Quarkus consiste nell'usare Azure CLI.
Accedi al tuo account Azure usando l'interfaccia della riga di comando di Azure:
az login
Seguire le istruzioni per completare il processo di accesso.
Creare un'app di esempio da MicroProfile Starter
In questa sezione si creerà un'applicazione Quarkus e la si testerà in locale.
Creare un progetto di base Java SE 8
Aprire un web browser e navigare al sito MicroProfile Starter.
Specificare i valori seguenti per i campi indicati.
Campo Valore ID del gruppo com.microsoft.azure.samples.quarkus artifactId quarkus-hello-azure Versione MicroProfile MP 3.2 Versione di Java SE Java 8 MicroProfile Runtime Quarkus Esempi di specifiche Metriche, OpenAPI Selezionare DOWNLOAD per scaricare il progetto.
Decomprimere il file di archivio; Per esempio:
unzip Quarkus-hello-azure.zip
Creare un progetto di base Java SE 11
Per creare il progetto di base Java 11, usare il comando seguente:
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"
Eseguire l'applicazione nell'ambiente locale
Cambiare directory al progetto completato: per esempio
cd quarkus-hello-azure/
Compilare ed eseguire il progetto usando Maven; Per esempio:
mvn quarkus:dev
Testare l'applicazione web accedendovi localmente usando un browser web. Ad esempio, è possibile usare il comando seguente se è disponibile curl:
Per il progetto Java SE 8:
curl http://localhost:8080/data/hello
Per il progetto Java SE 11:
curl http://localhost:8080/hello
Verrà visualizzato il messaggio seguente: Hello World o hello
Configurare il plug-in Maven per il servizio app di Azure
In questa sezione si configurerà il progetto Quarkus pom.xml file in modo che Maven possa distribuire l'app nel servizio app di Azure in Linux.
Aprire il file pom.xml in un editor di codice.
Nella sezione
<build>
del file di pom.xml, inserire la seguente voce di<plugin>
all'interno del tag<plugins>
dopomaven-surefire-plugin
.<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.13.0</version> </plugin>
Per configurare la distribuzione, eseguire il comando Maven seguente:
mvn azure-webapp:config
Selezionare le opzioni seguenti quando richiesto:
Campo di input Inserisci/Seleziona valore Scegliere una sottoscrizione Immettere l'ID sottoscrizione. Definire il valore per OS (Predefinito: Linux): 2. Linux Definire il valore per javaVersion(Default: Java 8): 2. Java 11 Definire il valore per pricingTier(Default: P1v2): 3. P1v2 Conferma (Y/N) y Questo comando genera un output simile all'esempio seguente:
[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] ------------------------------------------------------------------------
Aggiungere la sezione
<appSettings>
alla sezione<configuration>
diPORT
,WEBSITES_PORT
eWEBSITES_CONTAINER_START_TIME_LIMIT
. La voce XML perazure-webapp-maven-plugin
sarà simile all'esempio seguente:<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>
Aggiungere la voce seguente al file src/main/resources/application.properties file per creare il file JAR Uber (FAT).
quarkus.package.type=uber-jar
Distribuire l'app in Azure
Dopo aver configurato tutte le impostazioni nelle sezioni precedenti di questo articolo, si è pronti per distribuire l'applicazione Web in Azure. A tale scopo, seguire questa procedura:
Se sono state apportate modifiche al file pom.xml, ricompilare il file JAR usando il comando seguente:
mvn clean package
Distribuire l'app Web in Azure usando il comando seguente:
mvn azure-webapp:deploy
Se la distribuzione ha esito positivo, verrà visualizzato il risultato seguente.
[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 distribuirà l'applicazione Web in Azure. Se l'applicazione Web o il piano dell'applicazione Web non esiste già, verrà creato per te. Potrebbero essere necessari alcuni minuti prima che l'applicazione Web sia visibile all'URL visualizzato nell'output. Navigare verso l'URL in un browser web. Verrà visualizzata la schermata seguente.
Quando l'applicazione Web è stata distribuita, è possibile gestirla tramite il portale di Azure .
L'applicazione web verrà elencata nel gruppo di risorse microprofile.
È possibile accedere alla tua applicazione Web selezionando Sfoglia nella pagina Panoramica per la tua applicazione Web. Verificare che la distribuzione sia riuscita e sia in esecuzione.
Conferma il flusso di log dal servizio App Service in esecuzione
È possibile visualizzare (o esaminare in tempo reale) i log dall'App Service in esecuzione. Tutte le chiamate a console.log
nel codice del sito vengono visualizzate nel terminale.
az webapp log tail
--resource-group microprofile \
--name quarkus-hello-azure-1601011883156
Pulire le risorse
Quando le risorse di Azure non sono più necessarie, pulire le risorse distribuite eliminando il gruppo di risorse.
- Nel portale di Azure selezionare Gruppo di risorse dal menu a sinistra.
- Immettere microprofile nel campo Filtro per nome. Il gruppo di risorse creato in questa esercitazione dovrebbe avere questo prefisso.
- Selezionare il gruppo di risorse creato in questa esercitazione.
- Selezionare Elimina gruppo di risorse dal menu in alto.
Passaggi successivi
Per altre informazioni su MicroProfile e Azure, passare al Centro documentazione di MicroProfile in Azure.
Risorse aggiuntive
Per altre informazioni sulle varie tecnologie descritte in questo articolo, vedere gli articoli seguenti: