Déployer une application web Open Liberty Micro sur Azure App Service avec Maven

Dans ce guide de démarrage rapide, vous allez utiliser le plug-in Maven pour Azure App Service Web Apps pour déployer une application Open Liberty sur Azure App Service sur Linux. Il est préférable de choisir un déploiement Java SE plutôt que des fichiers Tomcat et WAR si vous souhaitez consolider les dépendances, le runtime et la configuration de votre application en un seul artefact déployable.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Important

Bien qu’Azure App Service soit conçu, exploité et pris en charge par Microsoft, le logiciel que vous exécutez au-dessus de celui-ci est soumis à sa propre prise en charge du plan de support et aux termes du contrat de licence. Pour plus d’informations sur la prise en charge des logiciels décrits dans cet article, consultez les pages principales des logiciels en question, comme indiqué dans l’article. Pour obtenir la prise en charge d’Open Liberty, consultez la page de support Open Liberty. Pour obtenir la prise en charge de WebSphere Liberty, consultez IBM Cloud Support.

Prérequis

Connectez-vous à Azure CLI

Le moyen le plus simple et le plus simple d’obtenir le plug-in Maven déployant votre application Open Liberty consiste à utiliser Azure CLI.

Connectez-vous à votre compte Azure à l’aide de l’interface de ligne de commande Azure :

az login

Suivez les instructions pour terminer le processus de connexion.

Créer un exemple d’application à partir de MicroProfile Starter

Dans cette section, vous allez créer une application Open Liberty et la tester localement.

  1. Ouvrez un navigateur web et accédez au site de MicroProfile Starter.

    Capture d’écran montrant MicroProfile Starter avec Open Liberty runtime sélectionné.

  2. Utilisez les valeurs du tableau suivant pour renseigner microProfile Starter.

    Champ Valeur
    groupId com.microsoft.azure.samples.openliberty
    artifactId openliberty-hello-azure
    Version de MicroProfile MP 4.0
    Version Java SE Java 11
    Runtime MicroProfile.io Open Liberty
    Exemples de spécifications Métriques, OpenAPI
  3. Sélectionnez TÉLÉCHARGER pour télécharger le projet.

  4. Décompressez le fichier d’archive ; par exemple :

    unzip openliberty-hello-azure.zip
    

Exécuter l’application dans un environnement local

  1. Accédez au répertoire du projet terminé. Par exemple :

    cd openliberty-hello-azure/
    
  2. Générez le projet à l’aide de Maven ; par exemple :

    mvn clean package
    
  3. Exécutez le projet, par exemple :

    java -jar target/openliberty-hello-azure.jar
    
  4. Testez l’application web en y accédant localement via un navigateur web. Par exemple, vous pouvez utiliser la commande suivante si curl est disponible :

    curl http://localhost:9080/data/hello
    
  5. Le message suivant doit s’afficher : Hello World

Configurer le plug-in Maven pour Azure App Service

Dans cette section, vous allez configurer le fichier pom.xml du projet Open Liberty afin que Maven puisse déployer l’application sur Azure App Service sur Linux.

  1. Pour configurer le déploiement, exécutez la commande Maven suivante :

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.3.0:config
    

    Sélectionnez les options suivantes quand vous y êtes invité :

    Champ d’entrée Entrer/Sélectionner une valeur
    Définir la valeur du système d’exploitation (par défaut : Linux) : 1. linux
    Définir la valeur de javaVersion(Par défaut : Java 8) : 2. Java 11
    Définir la valeur de runtimeStack(Par défaut : TOMCAT 8.5) : 2. TOMCAT 8.5
    Confirmez (O/N) y

Remarque

Même si nous n’utilisons pas Tomcat, sélectionnez-le TOMCAT 8.5 pour l’instant. Pendant la configuration détaillée, vous allez modifier la valeur à Javapartir de TOMCAT 8.5 . Cet exemple utilise une version spécifique du plug-in Azure App Service Maven. Vous devez envisager d’utiliser la dernière version disponible. Vous pouvez découvrir le nombre de versions les plus récentes en visitant un site tel que mvnrepository.com.

Cette commande produit une sortie semblable à celle de l’exemple suivant :

 [INFO] Scanning for projects...
 [INFO]
 [INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >----
 [INFO] Building openliberty-hello-azure 1.0-SNAPSHOT
 [INFO] --------------------------------[ war ]---------------------------------
 [INFO]
 [INFO] --- azure-webapp-maven-plugin:2.3.0:config (default-cli) @ openliberty-hello-azure ---
 Auth type: AZURE_CLI
 Default subscription:
 Username:
 [INFO] Subscription:
 [INFO] It may take a few minutes to load all Java Web Apps, please be patient.
 Define value for OS [Linux]:
   1: Windows
 * 2: Linux
   3: Docker
 Enter your choice:
 Define value for javaVersion [Java 8]:
 * 1: Java 8
   2: Java 11
 Enter your choice: 2
 Define value for webContainer [Tomcat 8.5]:
   1: Jbosseap 7
 * 2: Tomcat 8.5
   3: Tomcat 9.0
 Enter your choice:
 Define value for pricingTier [P1v2]:
   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:
 Please confirm webapp properties
 Subscription Id : ********-****-****-****-************
 AppName : openliberty-hello-azure-1642075767899
 ResourceGroup : openliberty-hello-azure-1642075767899-rg
 Region : centralus
 PricingTier : P1v2
 OS : Linux
 Java : Java 11
 Web server stack: Tomcat 8.5
 Deploy to slot : false
 Confirm (Y/N) [Y]:
 [INFO] Saving configuration to pom.
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
 [INFO] Total time:  21.981 s
 [INFO] Finished at: 2022-01-13T21:09:39+09:00
 [INFO] ------------------------------------------------------------------------
  1. Modifiez le fichier server.xml sous le répertoire /src/main/liberty/config/ pour exécuter l’application sur Azure Web Apps. Dans le fichier, ajoutez la host="*" ligne dans la <httpEndpoint> balise, comme illustré dans l’exemple suivant :

    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="9080"
                  httpsPort="9443"/>
    
  2. Modifiez l’entrée de vers et *.warjavadeployment vers vers *.jar le fichier pom.xml.runtimeTOMCAT 8.5 Ensuite, ajoutez la <appSettings> section à la <configuration> section de PORT, WEBSITES_PORTet WEBSITES_CONTAINER_START_TIME_LIMIT. Votre entrée XML ressemble azure-webapp-maven-plugin à l’exemple suivant :

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.3.0</version>
      <configuration>
        <schemaVersion>v2</schemaVersion>
        <subscriptionId>********-****-****-****-************</subscriptionId>
        <resourceGroup>openliberty-hello-azure-1642075767899-rg</resourceGroup>
        <appName>openliberty-hello-azure-1642075767899</appName>
        <pricingTier>P1v2</pricingTier>
        <region>japaneast</region>
        <runtime>
          <os>Linux</os>
          <javaVersion>Java 11</javaVersion>
          <webContainer>java</webContainer>
        </runtime>
      <appSettings>
        <property>
          <name>PORT</name>
          <value>9080</value>
        </property>
          <property>
          <name>WEBSITES_PORT</name>
          <value>9080</value>
        </property>
        <property>
          <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name>
          <value>600</value>
        </property>
      </appSettings>
        <deployment>
          <resources>
            <resource>
              <directory>${project.basedir}/target</directory>
              <includes>
                <include>*.jar</include>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    </plugin>
    

Déploiement de l’application dans Azure

Une fois que vous avez configuré tous les paramètres dans les sections précédentes de cet article, vous êtes prêt à déployer votre application web sur Azure. Pour cela, utilisez les étapes suivantes :

  1. À partir de l’invite de commandes ou de la fenêtre de terminal que vous utilisiez précédemment, régénérez le fichier JAR à l’aide de Maven si vous avez apporté des modifications au fichier pom.xml ; par exemple :

    mvn clean package
    
  2. Déployez votre application web dans Azure à l’aide de Maven ; par exemple :

    mvn azure-webapp:deploy
    

Si le déploiement a réussi, la sortie suivante s’affiche.

[INFO] Scanning for projects...
[INFO]
[INFO] ---< com.microsoft.azure.samples.openliberty:openliberty-hello-azure >----
[INFO] Building openliberty-hello-azure 1.0-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:2.3.0:deploy (default-cli) @ openliberty-hello-azure ---
Auth type: AZURE_CLI
[INFO] Creating web app openliberty-hello-azure-1642075767899...
[INFO] Successfully created Web App openliberty-hello-azure-1642075767899.
[INFO] Trying to deploy external resources to openliberty-hello-azure-1642075767899...
[INFO] Successfully deployed the resources to openliberty-hello-azure-1642075767899
[INFO] Trying to deploy artifact to openliberty-hello-azure-1642075767899...
[INFO] Deploying (/Users/Downloads/openliberty-hello-azure/target/openliberty-hello-azure.jar)[jar]  ...
[INFO] Successfully deployed the artifact to https://openliberty-hello-azure-1642075767899.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:11 min
[INFO] Finished at: 2022-01-13T21:29:50+09:00
[INFO] ------------------------------------------------------------------------

Maven déploie votre application web sur Azure. Si l’application web ou le plan d’application web n’existe pas déjà, il est créé pour vous. Plusieurs minutes peuvent être nécessaires avant que l’application web ne soit visible à l’URL indiquée dans la sortie. Accédez à l’URL dans un navigateur web. Vous devez normalement voir l’écran suivant.

Capture d’écran du navigateur web montrant la page d’accueil d’Open Liberty.

Une fois votre application déployée, vous pouvez la gérer via le Portail Azure.

Votre application web est répertoriée dans le groupe de ressources.

Vous pouvez accéder à votre application web en sélectionnant Parcourir dans la page Vue d’ensemble de votre application web. Vérifiez que le déploiement a réussi et que son état est En cours d’exécution.

Confirmer le flux de journal à partir de l’application App Service en cours d’exécution

Vous pouvez voir les dernières lignes des journaux de l’instance App Service en cours d’exécution. Tous les appels à console.log dans le code du site s’affichent dans le terminal.

az webapp log tail \
    --resource-group openliberty-hello-azure-1642075767899-rg \
    --name openliberty-hello-azure-1642075767899

Capture d’écran de la fenêtre de terminal montrant le flux de journal.

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, nettoyez les ressources Azure que vous avez déployées en supprimant le groupe de ressources.

  • Dans le portail Azure, sélectionnez Groupe de ressources dans le menu de gauche.
  • Entrez microprofile dans le champ Filtrer par nom. Le groupe de ressources créé dans ce tutoriel doit avoir ce préfixe.
  • Sélectionnez le groupe de ressources créé dans ce tutoriel.
  • Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Étapes suivantes

Pour en savoir plus sur MicroProfile et Azure, rendez-vous sur le centre de documentation MicroProfile sur Azure.

Ressources supplémentaires

Pour plus d’informations sur les différentes technologies présentées dans cet article, consultez les articles suivants :