Distribuire un'app Web Quarkus nel servizio app di Azure con Maven
In questa guida introduttiva utilizzerai il plug-in Maven per le Web App del Servizio App di Azure per distribuire un'applicazione Quarkus su Servizio App di Azure su Linux. Scegliere 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.
Accedi all'Azure CLI
Il modo più semplice e facile per distribuire l'applicazione Quarkus con il plug-in Maven è utilizzare l'Azure CLI .
Accedere all'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 viene creata un'applicazione Quarkus e testata 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 usando il comando seguente:
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 in un ambiente locale
Cambiare la directory per il progetto completato usando il comando seguente:
cd quarkus-hello-azure/
Compilare ed eseguire il progetto usando il comando Maven seguente:
mvn quarkus:dev
Testare l'applicazione web accedendovi localmente usando un browser web. Ad esempio, è possibile usare il comando seguente se è disponibile
curl
:Per un progetto Java SE 8:
curl http://localhost:8080/data/hello
Per un 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 viene configurato 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
dovrebbe essere 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 per creare il file uber-jar, noto anche come fat Jar:
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, viene visualizzato l'output 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 distribuisce l'applicazione Web in Azure. Se l'applicazione web o il piano dell'applicazione web non esiste già, viene creata 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:
Dopo aver distribuito l'applicazione Web, è possibile gestirla tramite il portale di Azure .
L'applicazione Web è elencata nel microprofile gruppo di risorse.
È 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 utilizzare il comando seguente per visualizzare - o eseguire tail - i log del servizio App 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. A tale scopo, seguire questa procedura:
- Nel portale di Azure selezionare gruppo di risorse dal menu.
- Immettere microprofile nel campo Filtro per nome. Il gruppo di risorse creato in questa esercitazione deve avere questo prefisso.
- Selezionare il gruppo di risorse creato in questa esercitazione.
- Selezionare Elimina gruppo di risorse dal menu.
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: