Cvičení – nasazení webové aplikace do služby Azure App Service

Dokončeno

V této lekci nasadíte webovou aplikaci Java Tomcat do služby Azure App Service.

Plug-in Maven pro Azure App Service

Microsoft poskytuje modul plug-in Maven pro Azure App Service, který vývojářům v Javě usnadňuje nasazování aplikací do Azure. Pomocí tohoto modulu plug-in můžete snadno nakonfigurovat a nasadit aplikaci do Azure. Pomocí kroků v následujících částech nakonfigurujte modul plug-in, zkompilujte zdrojový kód a nasaďte aplikaci.

Konfigurace modulu plug-in Maven pro Azure App Service

Pokud chcete nakonfigurovat modul plug-in Maven pro Azure App Service, postupujte následovně:

  1. Spusťte konfiguraci pomocí následujícího příkazu:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. Po použití příkazu se na příkazovém řádku zobrazí některé otázky, které vám umožní nakonfigurovat různé možnosti. Nakonfigurujte možnosti a hodnoty podle informací v následující tabulce:

    Položka Vstupní hodnota
    Předplatné Zvolte svoje předplatné Azure.
    Definování hodnoty pro operační systém Operační systém Linux
    Definování hodnoty pro cenovou úroveň B1
    Definování hodnoty pro verzi Javy Java 21
    Definování hodnoty pro zásobník modulu runtime TOMCAT 10.0
    Potvrdit (Y/N) Y

    Po nakonfigurování možností je typický následující výstup:

    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. Soubor pom.xml teď obsahuje v oddílu <plugins> nový oddíl. Pokud chcete změnit název skupiny prostředků, název instance nebo umístění nasazení, změňte hodnoty v objektu <resourceGroup>, <appName>nebo <region> elementech. Následující příklad ukazuje typický souborpom.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>
    

Kompilace a nasazení do služby Azure App Service

Teď, když jste dokončili konfiguraci nastavení pro nasazení do služby Azure App Service, pomocí následujících kroků zkompilujte zdrojový kód a nasaďte aplikaci do Azure App Services:

  1. Znovu zkompilujte zdrojový kód pomocí následujícího příkazu:

    mvn clean package
    
  2. Po kompilaci zdrojového kódu pomocí následujícího příkazu nasaďte aplikaci:

    mvn azure-webapp:deploy
    

Po dokončení nasazení je typický následující výstup:

[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 vidíte, tento výstup poskytuje veřejnou adresu URL nasazené aplikace: Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net.

Když přejdete do aplikace, měla by vypadat podobně jako na následujícím snímku obrazovky:

Snímek obrazovky znázorňující nasazenou webovou aplikaci v prohlížeči

Potvrzení streamu protokolu

Chcete-li získat přístup ke streamu protokolu, použijte následující příkaz:

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

Následující výstup je typický:

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

Souhrn cvičení

V této lekci jste zjistili, jak vytvořit webovou aplikaci Tomcat pomocí Mavenu. Dozvěděli jste se také, jak vytvořit servlet a jak to funguje. Pak jste webovou aplikaci nasadili místně pomocí Tomcatu. Nakonec jste nasadili službu Azure App Service, aby k ní měli přístup lidé z celého světa.