Övning – Distribuera en Java-webbapp till Azure App Service
I den här lektionen distribuerar du din app till Azure App Service.
Vad är Azure App Service?
Azure tillhandahåller Azure App Service som PaaS (plattform som en tjänst) där du kan köra Tomcat. Den innehåller Windows- och Linux-miljöer, säkerhet, belastningsutjämning, automatisk skalning och DevOps-integrering. Du kan låta Azure hantera operativsystemet och Tomcat, så att du kan koncentrera dig på att skapa appar.
Hämta JSF-exempelprogram
Om du vill distribuera ett Java-webbprogram kan du hämta ett PrimeFaces JavaServer Faces-webbprogram (JSF) från GitHub enligt följande:
git clone https://github.com/yoshioterada/Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0
När du har klonar visas följande filer i katalogen:
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
Plugin-programmet Maven för Azure App Service
Microsoft tillhandahåller Maven-plugin-programmet för Azure App Service för att göra det enklare för Java-utvecklare att distribuera program till Azure. När du använder plugin-programmet kan du enkelt konfigurera och distribuera appen till Azure. Kör följande kommando för att använda Maven-plugin-programmet för Azure App Service.
Konfigurera plugin-programmet Maven för Azure App Service
Kör följande kommando för att konfigurera Plugin-programmet Maven för Azure App Service:
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
Efter kommandot kan frågor visas i prompten. Välj och ange lämpliga objekt. Ange följande alternativ:
Artikel | Indatavärde |
---|---|
Prenumeration | Välj din Azure-prenumeration |
Definiera värdet för operativsystem | 1: Linux |
Definiera värdet för prisnivån | P1v2 |
Definiera värdet för Java-versionen | 1: Java 8 eller 2: Java 11 |
Definiera värdet för körningsstacken | 3: TOMCAT 9.0 |
Confirm (Y/N) (Bekräfta (J/N)) | Y |
När du har kört kommandot visas följande resultat:
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] ------------------------------------------------------------------------
Ett nytt avsnitt visas i avsnittet <plugins>
i filen pom.xml
.
Om du vill ändra resursgruppsnamnet, instansnamnet och distributionsplats ändrar du <resourceGroup>
, <appName>
och <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>
Kompilera och distribuera till Azure App Service
Nu när inställningarna för distribution till Azure App Service är klara kompilerar du källkoden igen:
mvn clean package
När du har kompilerat använder du kommandot Maven Plugin for Azure Web Apps för att distribuera ditt program. Kör följande kommando:
mvn azure-webapp:deploy
När distributionen är klar matas följande meddelande ut.
[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] ------------------------------------------------------------------------
Den offentliga URL:en för det distribuerade programmet visas på Successfully deployed the artifact to
raden. Få åtkomst till din URL med en webbläsare, som i följande exempel:
https://azure-javaweb-app-1601463451101.azurewebsites.net
Kontrollera loggströmmen från kommandoraden
Kör följande CLI-kommando för att få åtkomst till loggströmmen:
az webapp log tail -g azure-javaweb-app -n azure-javaweb-app-1601463451101
Du får följande resultat:
Sammanfattning av övningen
I den här lektionen har du lärt dig att skapa och paketera ett Java-webbprogram, hur du använder Maven-pluginprogrammet för Azure Web Apps och hur du distribuerar ditt program till Azure App Service. De här stegen gäller inte bara för JSF-appar, utan även för de flesta Java-webbappar.