Ćwiczenie — wdrażanie aplikacji internetowej w usłudze Azure App Service

Ukończone

W tej lekcji wdrożysz aplikację internetową Java Tomcat w usłudze Azure App Service.

Wtyczka Maven dla usługi Azure App Service

Firma Microsoft udostępnia wtyczkę Maven dla usługi Azure App Service, aby ułatwić deweloperom języka Java wdrażanie aplikacji na platformie Azure. Korzystając z tej wtyczki, można łatwo skonfigurować i wdrożyć aplikację na platformie Azure. Wykonaj kroki opisane w poniższych sekcjach, aby skonfigurować wtyczkę, skompilować kod źródłowy i wdrożyć aplikację.

Konfigurowanie wtyczki Maven dla usługi Azure App Service

Aby skonfigurować wtyczkę Maven dla usługi Azure App Service, wykonaj następujące kroki:

  1. Rozpocznij konfigurację, używając następującego polecenia:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. Po użyciu polecenia pojawia się kilka pytań w wierszu polecenia, co umożliwia skonfigurowanie różnych opcji. Skonfiguruj opcje i wartości zgodnie z informacjami w poniższej tabeli:

    Przedmiot Wartość wejściowa
    Subskrypcja Wybierz subskrypcję platformy Azure.
    Definiowanie wartości dla systemu operacyjnego Linux
    Definiowanie wartości dla warstwy cenowej B1
    Definiowanie wartości dla wersji języka Java Java 21
    Zdefiniuj wartość dla stosu uruchomieniowego TOMCAT 10.0
    Potwierdź (Y/N) Y

    Po skonfigurowaniu opcji typowe są następujące dane wyjściowe:

    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. Plik pom.xml zawiera teraz nową sekcję w sekcji <plugins>. Jeśli chcesz zmienić nazwę grupy zasobów, nazwę wystąpienia lub lokalizację wdrożenia, zmień wartości w elementach <resourceGroup>, <appName>lub <region> . W poniższym przykładzie przedstawiono typowy plik pom.xml :

          <!-- 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>
    

Kompilowanie i wdrażanie w usłudze Azure App Service

Po zakończeniu konfigurowania ustawień wdrażania w usłudze Azure App Service wykonaj następujące kroki, aby skompilować kod źródłowy i wdrożyć aplikację w usłudze Azure App Services:

  1. Ponownie skompiluj kod źródłowy przy użyciu następującego polecenia:

    mvn clean package
    
  2. Po skompilowaniu kodu źródłowego użyj następującego polecenia, aby wdrożyć aplikację:

    mvn azure-webapp:deploy
    

Po zakończeniu wdrażania typowe są następujące dane wyjściowe:

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

Jak widać, dane wyjściowe zawierają publiczny adres URL wdrożonej aplikacji: Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net.

Po przejściu do aplikacji powinien wyglądać podobnie do poniższego zrzutu ekranu:

Zrzut ekranu przedstawiający wdrożona aplikację internetową w przeglądarce.

Potwierdź strumień dziennika

Aby uzyskać dostęp do strumienia dziennika, użyj następującego polecenia:

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

Następujące dane wyjściowe są typowe:

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

Podsumowanie ćwiczenia

W tej lekcji przedstawiono sposób tworzenia aplikacji internetowej Tomcat przy użyciu narzędzia Maven. Wiesz również, jak utworzyć serwlet i jak to działa. Następnie wdrożono aplikację internetową lokalnie przy użyciu serwera Tomcat. Na koniec wdrożono w usłudze Azure App Service, aby każdy na świecie miał do niej dostęp.