Exercice - Déployer une application web sur Azure App Service

Effectué

Dans cette unité, vous déployez votre application web Java Tomcat sur Azure App Service.

Plug-in Maven pour Azure App Service

Microsoft fournit le plug-in Maven pour Azure App Service qui permet aux développeurs Java de déployer plus facilement les applications sur Azure. En utilisant ce plug-in, vous pouvez configurer et déployer facilement votre application sur Azure. Suivez les étapes décrites dans les sections suivantes pour configurer le plug-in, compiler votre code source et déployer votre application.

Configurer le plug-in Maven pour Azure App Service.

Pour configurer le plug-in Maven pour Azure App Service, procédez comme suit :

  1. Commencez la configuration à l’aide de la commande suivante :

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. Une fois la commande utilisée, certaines questions s’affichent à l’invite, ce qui vous permet de configurer différentes options. Configurez les options et les valeurs en fonction des informations contenues dans le tableau suivant :

    Élément Valeur d'entrée
    Abonnement Choisissez votre abonnement Azure.
    Définissez la valeur du système d’exploitation Linux
    Définir la valeur de niveau tarifaire B1
    Définissez la valeur de version de Java Java 21
    Définissez la valeur de Runtime Stack TOMCAT 10.0
    Confirmez (Oui/Non) O

    Après avoir configuré les options, la sortie suivante est classique :

    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. Votre fichier pom.xml contient désormais une nouvelle section de la <plugins> section. Si vous souhaitez modifier le nom du groupe de ressources, le nom de l’instance ou l’emplacement de déploiement, modifiez les valeurs dans les éléments <resourceGroup>, <appName>, ou <region>. L’exemple suivant montre un fichier pom.xml classique :

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

Compiler et déployer dans Azure App Service

Maintenant que vous avez terminé de configurer les paramètres de déploiement sur Azure App Service, procédez comme suit pour compiler votre code source et déployer votre application sur Azure App Services :

  1. Compilez à nouveau le code source à l’aide de la commande suivante :

    mvn clean package
    
  2. Une fois le code source compilé, utilisez la commande suivante pour déployer votre application :

    mvn azure-webapp:deploy
    

Une fois le déploiement terminé, la sortie suivante est classique :

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

Comme vous pouvez le voir, cette sortie fournit l’URL publique de l’application déployée : Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net.

Lorsque vous accédez à l’application, elle doit ressembler à la capture d’écran suivante :

Capture d’écran montrant l’application web déployée dans un navigateur.

Confirmer le flux de logs

Pour accéder au flux de logs, utilisez la commande suivante :

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

La sortie suivante est classique :

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

Résumé de l’exercice

Dans cette unité, vous avez appris à créer une application web Tomcat à l’aide de Maven. Vous avez également appris à créer un servlet et comment il fonctionne. Ensuite, vous avez déployé votre application web localement à l’aide de Tomcat. Enfin, vous avez déployé sur Azure App Service pour que tout le monde puisse y accéder.