Oefening: een Java-web-app implementeren in Azure App Service

Voltooid

In deze eenheid implementeert u de app in Azure App Service.

Wat is Azure App Service?

Azure biedt Azure App Service als een PaaS (Platform as a Service) voor het uitvoeren van Tomcat. Het biedt een Windows- en Linux-omgeving, beveiliging, taakverdeling, automatisch schalen en DevOps-integratie. U kunt het beheer van het besturingssysteem en Tomcat overlaten aan Azure en u focussen op het maken van apps.

Screenshot that shows the Azure portal screen.

Voorbeelden van JSF-apps ophalen

Als u een Java-webtoepassing wilt implementeren, kunt u een PrimeFaces JavaServer Faces-webtoepassing (JSF) ophalen uit GitHub, zoals hier wordt weergegeven:

git clone https://github.com/yoshioterada/Deploy-PrimeFaces-JSF-Web-App-on-Tomcat-9.0

Nadat u hebt gekloond, ziet u de volgende bestanden in de map:

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

Maven-invoegtoepassing voor Azure App Service

Microsoft biedt de Maven-invoegtoepassing voor Azure-app Service, zodat Java-ontwikkelaars eenvoudiger toepassingen kunnen implementeren in Azure. Met deze invoegtoepassing kunt u uw toepassing eenvoudig configureren en implementeren in Azure. Voer de volgende opdracht uit om de Maven-invoegtoepassing te gebruiken voor Azure-app Service.

De Maven-invoegtoepassing voor Azure App Service configureren

Voer de volgende opdracht uit om de Maven-invoegtoepassing voor Azure-app Service te configureren:

mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config

Na de opdracht wordt een aantal vragen weergegeven bij de prompt. Voer dus de gewenste items in, selecteer ze, en stel ze in. Voer de volgende opties in:

Artikel Invoerwaarde
Abonnement Kies uw Azure-abonnement
Waarde definiëren voor besturingssysteem 1: Linux
Waarde definiëren voor prijscategorie P1v2
Waarde definiëren voor Java-versie 1: Java 8 of 2: Java 11
Waarde definiëren voor runtimestack 3: TOMCAT 9.0
Bevestigen (J/N) J

Nadat u de opdracht hebt uitgevoerd, worden deze resultaten weergegeven:

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 : f77aafe8-6be4-4d3d-bd9c-d0c37687ef70
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] ------------------------------------------------------------------------

U ziet een nieuw gedeelte in de sectie <plugins> van het bestand pom.xml.

Als u de naam van de resourcegroep, de naam van de instantie en de implementatielocatie wilt wijzigen, wijzigt u <resourceGroup>, <appName> en <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>

Compileren en implementeren in Azure App Service

Nu de instellingen voor het implementeren in Azure App Service zijn voltooid, compileert u de broncode opnieuw:

mvn clean package

Zodra deze is gecompileerd, gebruikt u de opdracht Maven-invoegtoepassing voor Azure Web Apps om uw toepassing te implementeren. Voer de volgende opdracht uit:

mvn azure-webapp:deploy

Wanneer de implementatie is voltooid, wordt het volgende bericht weergegeven.

[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] ------------------------------------------------------------------------

De openbare URL van de geïmplementeerde toepassing wordt weergegeven in de Successfully deployed the artifact to regel. Open uw URL met een browser, zoals in het volgende voorbeeld:

https://azure-javaweb-app-1601463451101.azurewebsites.net

Screenshot that shows the deployed web app on Azure App Service.

De logboekstream bevestigen vanaf de opdrachtregel

Voer de volgende CLI-opdracht uit om toegang te krijgen tot de logboekstream:

az webapp log tail -g azure-javaweb-app -n azure-javaweb-app-1601463451101

U krijgt het volgende resultaat:

Screenshot that shows the execution of the log stream.

Samenvatting van oefening

In deze les hebt u geleerd hoe u een Java-webtoepassing maakt en verpakt, hoe u de Maven-invoegtoepassing voor Azure Web Apps gebruikt en hoe u uw toepassing implementeert in Azure-app Service. Deze stappen zijn niet alleen van toepassing op JSF-apps, maar ook op de meeste Java-webtoepassingen.