Übung – Bereitstellen einer Web-App in Azure App Service

Abgeschlossen

In dieser Lektion stellen Sie Ihre Java Tomcat-Web-App in Azure App Service bereit.

Maven-Plug-In für Azure App Service

Microsoft stellt das Maven-Plug-In für Azure App Service bereit, um die Bereitstellung von Anwendungen in Azure für Java-Entwickler*innen zu vereinfachen. Mithilfe dieses Plug-Ins können Sie Ihre Anwendung mühelos konfigurieren und in Azure bereitstellen. Führen Sie die Schritte in den folgenden Abschnitten aus, um das Plug-In zu konfigurieren, den Quellcode zu kompilieren und Ihre App bereitzustellen.

Konfigurieren des Maven-Plug-Ins für Azure App Service

Führen Sie die folgenden Schritte aus, um das Maven-Plug-In für Azure App Service zu konfigurieren:

  1. Beginnen Sie die Konfiguration mit dem folgenden Befehl:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. Nachdem Sie den Befehl verwendet haben, werden einige Fragen an der Eingabeaufforderung angezeigt, sodass Sie verschiedene Optionen konfigurieren können. Konfigurieren Sie die Optionen und Werte entsprechend den Informationen in der folgenden Tabelle:

    Element Eingabewert
    Abonnement Wählen Sie Ihr Azure-Abonnement aus.
    Wert für Betriebssystem definieren Linux
    Define value for pricing tier (Wert für Tarif definieren) B1
    Define value for Java Version (Wert für Java-Version definieren) Java 21
    Define value for Runtime Stack (Wert für Runtimestapel definieren) TOMCAT 10.0
    Bestätigen (Ja/Nein) J

    Nachdem Sie die Optionen konfiguriert haben, ist die folgende Ausgabe typisch:

    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. Ihre pom.xml Datei enthält jetzt einen neuen Abschnitt im <plugins> Abschnitt. Wenn Sie den Ressourcengruppennamen, den Instanznamen oder den Bereitstellungsort ändern möchten, ändern Sie die Werte in den <resourceGroup>, <appName>oder <region> Elementen. Das folgende Beispiel zeigt eine typische pom.xml Datei:

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

Kompilieren und Bereitstellen in Azure App Service

Nachdem Sie die Einstellungen für die Bereitstellung in Azure App Service konfiguriert haben, führen Sie die folgenden Schritte aus, um Ihren Quellcode zu kompilieren und Ihre App in Azure App Services bereitzustellen:

  1. Kompilieren Sie den Quellcode erneut, indem Sie den folgenden Befehl verwenden:

    mvn clean package
    
  2. Nachdem der Quellcode kompiliert wurde, verwenden Sie den folgenden Befehl, um Ihre Anwendung bereitzustellen:

    mvn azure-webapp:deploy
    

Nach Abschluss der Bereitstellung ist die folgende Ausgabe typisch:

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

Wie Sie sehen können, stellt diese Ausgabe die öffentliche URL der bereitgestellten Anwendung bereit: Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net.

Wenn Sie zu der Anwendung navigieren, sollte sie ähnlich wie der folgende Screenshot aussehen:

Screenshot der bereitgestellten Web-App in einem Browser.

Bestätigen des Protokolldatenstroms

Verwenden Sie den folgenden Befehl, um auf den Protokolldatenstrom zuzugreifen:

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

Das folgende Ergebnis ist typisch:

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

Zusammenfassung der Übung

In dieser Lektion haben Sie gelernt, wie Sie eine Tomcat-Web-App mit Maven erstellen. Außerdem haben Sie gelernt, wie Sie ein Servlet erstellen und wie es funktioniert. Als Nächstes haben Sie Ihre Web-App lokal mit Tomcat bereitgestellt. Schließlich haben Sie azure App Service bereitgestellt, damit jeder in der Welt darauf zugreifen kann.