Övning – Distribuera en Java-webbapp till Azure App Service

Slutförd

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.

Screenshot that shows the Azure portal screen.

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

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

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:

Screenshot that shows the execution of the log stream.

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.