Övning – Distribuera en webbapp till Azure App Service

Slutförd

I den här lektionen distribuerar du din Java Tomcat-webbapp till Azure App Service.

Maven-plugin-program 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. Med det här plugin-programmet kan du enkelt konfigurera och distribuera ditt program till Azure. Använd stegen i följande avsnitt för att konfigurera plugin-programmet, kompilera källkoden och distribuera appen.

Konfigurera Maven-plugin-programmet för Azure App Service

Använd följande steg för att konfigurera Plugin-programmet Maven för Azure App Service:

  1. Starta konfigurationen med hjälp av följande kommando:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. När du har använt kommandot visas några frågor i kommandotolken, så att du kan konfigurera olika alternativ. Konfigurera alternativen och värdena enligt informationen i följande tabell:

    Sak Indatavärde
    Abonnemang Välj din Azure-prenumeration.
    Definiera värde för operativsystem Linux
    Definiera värde för prisnivå B1
    Definiera värde för Java-version Java 21
    Definiera värde för körningsstack TOMCAT 10.0
    Bekräfta (Y/N) Y

    När du har konfigurerat alternativen är följande utdata typiska:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    [INFO] Scanning for projects...
    [INFO]
    [INFO] -------------------< com.example:simple-tomcat-app >--------------------
    [INFO] Building simple-tomcat-app 1.0-SNAPSHOT
    [INFO]   from pom.xml
    [INFO] --------------------------------[ war ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp:2.10.0:config (default-cli) @ simple-tomcat-app ---
    Downloading from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml
    Downloading from ossrh: https://oss.sonatype.org/content/repositories/snapshots/net/minidev/json-smart/maven-metadata.xml
    Downloading from shibboleth-repo: https://build.shibboleth.net/nexus/content/repositories/releases/net/minidev/json-smart/maven-metadata.xml
    Downloaded from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml (1.3 kB at 6.3 kB/s)
    Please choose which part to config [Application]:
    * 1: Application
      2: Runtime
      3: DeploymentSlot
    Enter your choice: 1
    Define value for appName [simple-tomcat-app]: tomcatmavendemo
    Define value for resourceGroup [tomcatmavendemo-rg]: MyResourceGroup
    Define value for region [{azure.region}]: centralus
    Define value for pricingTier [B1]:
    *  1: B1
       2: B2
       3: B3
       4: D1
       5: EP1
       6: EP2
       7: EP3
       8: F1
       9: P1v2
      10: P1v3
      11: P2v2
      12: P2v3
      13: P3v2
      14: P3v3
      15: S1
      16: S2
      17: S3
      18: Y1
    Enter your choice: 1
    Please confirm webapp properties
    AppName : tomcatmavendemo
    ResourceGroup : MyResourceGroup
    Region : centralus
    PricingTier : B1
    OS : Linux
    Java Version: 21
    Web server stack: Tomcat 10.1
    Deploy to slot : false
    Confirm (Y/N) [Y]: Y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:49 min
    [INFO] Finished at: 2024-11-07T09:54:55-08:00
    [INFO] ------------------------------------------------------------------------
    
  3. Din pom.xml-fil innehåller nu ett nytt avsnitt i avsnittet <plugins> . Om du vill ändra resursgruppens namn, instansnamn eller distributionsplats ändrar du värdena i elementen <resourceGroup>, <appName>eller <region> . I följande exempel visas en typisk pom.xml fil:

          <!-- Azure Web App Maven Plugin -->
    <plugin>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-webapp-maven-plugin</artifactId>
        <version>2.10.0</version>
        <configuration>
            <resourceGroup>MyResourceGroup</resourceGroup>
            <appName>tomcatmavendemo</appName>
            <region>centralus</region>
            <pricingTier>B1</pricingTier>
            <runtime>
                <os>linux</os>
                <javaVersion>21</javaVersion>
                <webContainer>Tomcat 10.1</webContainer>
            </runtime>
            <deployment>
                <resources>
                    <resource>
                        <directory>${project.build.directory}</directory>
                        <includes>
                            <include>*.war</include>
                        </includes>
                    </resource>
                </resources>
            </deployment>
        </configuration>
    </plugin>
    

Kompilera och distribuera till Azure App Service

Nu när du har konfigurerat inställningarna för distribution till Azure App Service använder du följande steg för att kompilera källkoden och distribuera din app till Azure App Services:

  1. Kompilera källkoden igen med hjälp av följande kommando:

    mvn clean package
    
  2. När källkoden har kompilerats använder du följande kommando för att distribuera programmet:

    mvn azure-webapp:deploy
    

När distributionen är klar är följande utdata typiska:

[INFO] Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:55 min
[INFO] Finished at: 2024-11-07T10:05:19-08:00
[INFO] ------------------------------------------------------------------------

Som du ser tillhandahåller resultatet den offentliga URL:en av det distribuerade programmet: Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net.

När du navigerar till programmet bör det se ut ungefär så här:

Skärmbild som visar den distribuerade webbappen i en webbläsare.

Bekräfta loggströmmen

Använd följande kommando för att komma åt loggströmmen:

az webapp log tail \
    --resource-group <your-resource-group> \
    --name <your-app-name>

Följande utdata är typiska:

2024-11-07T18:14:37  Welcome, you are now connected to log-streaming service.
Starting Log Tail -n 10 of existing logs ----
/appsvctmp/volatile/logs/runtime/container.log
2024-11-07T18:06:05.3874260Z  java.base/java.lang.Thread.run(Thread.java:1583)
2024-11-07T18:06:05.5635356Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.5636042Z INFO: Stopping ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6020767Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.6021438Z INFO: Stopping ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.6423756Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6424403Z INFO: Destroying ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6893602Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6894311Z INFO: Destroying ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.7849816Z Done processing signal SIGTERM. Exiting now!
Ending Log Tail of existing logs ---
Starting Live Log Stream ---

Övningssammanfattning

I den här lektionen har du lärt dig hur du skapar en Tomcat-webbapp med Maven. Du har också lärt dig hur du skapar en servlet och hur den fungerar. Därefter distribuerade du webbappen lokalt med hjälp av Tomcat. Slutligen har du distribuerat till Azure App Service så att alla i världen kan komma åt dem.