Esercizio - Distribuire un'app Web Java in Servizio app di Azure
In questa unità si distribuirà l'applicazione in Servizio app di Azure.
Che cos'è Servizio app di Azure?
Azure fornisce Servizio app di Azure come piattaforma distribuita come servizio (PaaS) per l'esecuzione di Tomcat. Offre un ambiente Windows e Linux, sicurezza, bilanciamento del carico, scalabilità automatica e integrazione con DevOps. È possibile usare Azure per gestire automaticamente il sistema operativo e Tomcat e concentrarsi sulla compilazione delle applicazioni.
Ottenere applicazioni JSF di esempio
Per distribuire un'applicazione Web Java, è possibile ottenere un'applicazione Web JavaServer Faces (JSF) PrimeFaces da GitHub, come indicato qui:
git clone https://github.com/yoshioterada/Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
Dopo la clonazione, nella directory saranno presenti i file seguenti:
Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
├── pom.xml
└── src
└── main
├── java
│ └── com
│ └── microsoft
│ └── azure
│ └── samples
│ ├── controller
│ │ └── TodoListController.java
│ ├── dao
│ │ ├── ItemManagement.java
│ │ └── TodoItemManagementInMemory.java
│ └── model
│ └── TodoItem.java
└── webapp
├── META-INF
│ └── context.xml
├── WEB-INF
│ ├── beans.xml
│ ├── classes
│ │ └── logging.properties
│ ├── faces-config.xml
│ └── web.xml
└── index.xhtml
Plug-in Maven per Servizio app di Azure
Microsoft fornisce Maven Plugin per Servizio app di Azure per facilitare la distribuzione delle applicazioni in Azure per gli sviluppatori Java. Usando questo plug-in, è possibile configurare e distribuire facilmente l'applicazione in Azure. Eseguire il comando seguente per usare Maven Plugin per Servizio app di Azure.
Configurare il plug-in Maven per Servizio app di Azure
Per configurare Maven Plugin per Servizio app di Azure, eseguire il comando seguente:
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
Dopo aver eseguito il comando, al prompt verranno visualizzate alcune domande, quindi immettere e selezionare gli elementi appropriati e impostarli. Immettere le opzioni seguenti:
Articolo | Valore di input |
---|---|
Abbonamento | Scegli la tua sottoscrizione Azure |
Define value for OS | 1: Linux |
Define value for pricing tier | P1v2 |
Define value for Java version | 1: Java 8 o 2: Java 11 |
Define value for runtime stack | 3: TOMCAT 9.0 |
Confirm (Y/N) | Y |
Dopo aver eseguito il comando, verranno visualizzati i risultati:
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] -----------< com.microsoft.azure.samples:azure-javaweb-app >------------
[INFO] Building azure-javaweb-app Maven Webapp 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:1.12.0:config (default-cli) @ azure-javaweb-app ---
Available subscriptions:
* 1: My Subscription (********-****-****-****-************)
Please choose a subscription [My Subscription]: [Enter]
[INFO] It may take a few minutes to load all Java Web Apps, please be patient.
[WARNING] There are no Java Web Apps in current subscription, please follow the following steps to create a new one.
Define value for OS [Linux]:
* 1: Linux
2: Docker
3: Windows
Enter your choice:
Define value for pricingTier [P1v2]:
1: B1
2: B2
3: B3
4: D1
5: F1
* 6: P1v2
7: P2v2
8: P3v2
9: S1
10: S2
11: S3
Define value for javaVersion [Java 8]:
* 1: Java 8
2: Java 11
Enter your choice: 1
Define value for runtimeStack:
1: Jbosseap 7.2
* 2: Tomcat 8.5
3: Tomcat 9.0
Enter your choice: 3
Please confirm webapp properties
Subscription Id : aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
AppName : azure-javaweb-app-1604982052600
ResourceGroup : azure-javaweb-app-1604982052600-rg
Region : westeurope
PricingTier : PremiumV2_P1v2
OS : Linux
Java : Java 8
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: y
[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.656 s
[INFO] Finished at: 2020-10-01T17:24:02+09:00
[INFO] ------------------------------------------------------------------------
Nella sezione <plugins>
del file pom.xml
verrà visualizzata una nuova sezione.
Per modificare il nome del gruppo di risorse, il nome dell'istanza e il percorso della distribuzione, modificare <resourceGroup>
, <appName>
e <region>
.
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>1.12.0</version>
<configuration>
<schemaVersion>V2</schemaVersion>
<subscriptionId>********-****-****-****-************</subscriptionId>
<resourceGroup>azure-javaweb-app</resourceGroup>
<appName>azure-javaweb-app-1601463451101</appName>
<pricingTier>P1v2</pricingTier>
<region>japaneast</region>
<runtime>
<os>linux</os>
<javaVersion>Java 8</javaVersion>
<webContainer>TOMCAT 9.0</webContainer>
</runtime>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.war</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
</plugins>
Eseguire la compilazione e la distribuzione in Servizio app di Azure
Ora che le impostazioni per la distribuzione in Servizio app di Azure sono state completate, compilare nuovamente il codice sorgente:
mvn clean package
Dopo la compilazione, usare il comando di Maven Plugin per App Web di Azure per distribuire l'applicazione. Eseguire il comando seguente:
mvn azure-webapp:deploy
Al termine della distribuzione, verrà visualizzato il messaggio seguente.
[INFO] Successfully deployed the artifact to https://azure-javaweb-app-1601463451101.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:15 min
[INFO] Finished at: 2020-11-19T15:55:55+09:00
[INFO] ------------------------------------------------------------------------
L'URL pubblico dell'applicazione distribuita è visualizzato nella riga Successfully deployed the artifact to
. Accedere all'URL con un browser, come nell'esempio seguente:
https://azure-javaweb-app-1601463451101.azurewebsites.net
Verificare il flusso di registrazione dalla riga di comando
Per accedere al flusso di registrazione, eseguire il comando dell'interfaccia della riga di comando seguente:
az webapp log tail -g azure-javaweb-app -n azure-javaweb-app-1601463451101
Si otterrà il risultato seguente:
Esercizio di riepilogo
In questa unità si è appreso come creare e inserire in un pacchetto un'applicazione Web Java, come usare Maven Plugin per App Web di Azure e come distribuire l'applicazione in Servizio app di Azure. Questi passaggi sono validi non solo per le applicazioni JSF, ma anche per la maggior parte delle applicazioni Web Java.