Démarrage rapide : Créer et déployer des applications sur Azure Spring Apps

Notes

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Cet article s’applique à : ✔️ De base/Standard ❌ Entreprise

Ce démarrage rapide explique comment créer et déployer des applications Spring sur Azure Spring Apps à l’aide d’Azure CLI.

Prérequis

Télécharger l’exemple d’application

Procédez comme suit pour télécharger l’exemple d’application. Si vous utilisiez Azure Cloud Shell, passez à une invite de commandes locale.

  1. Créez un dossier et clonez le dépôt de l’exemple d’application.

    mkdir source-code
    
    cd source-code
    
    git clone https://github.com/Azure-Samples/azure-spring-apps-samples
    
  2. Accédez au répertoire du référentiel.

    cd azure-spring-apps-samples
    

Déployer PlanetWeatherProvider

Suivez les étapes suivantes pour déployer le projet PlanetWeatherProvider.

  1. Créez une autre application pour le projet PlanetWeatherProvider dans votre instance Azure Spring Apps.

    az spring app create --name planet-weather-provider --runtime-version NetCore_31
    

    Pour activer l’inscription automatique du service, vous avez donné à l’application le même nom que la valeur de spring.application.name dans le fichier appsettings.json :

    "spring": {
      "application": {
        "name": "planet-weather-provider"
      }
    }
    

    L’exécution de cette commande peut durer plusieurs minutes.

  2. Accédez au répertoire du dossier du projet PlanetWeatherProvider.

    cd steeltoe-sample/src/planet-weather-provider
    
  3. Créez les fichiers binaires et le fichier .zip à déployer.

    dotnet publish -c release -o ./publish
    

    Conseil

    Le fichier projet contient le code XML suivant permettant d’empaqueter les fichiers binaires dans un fichier .zip après les avoir écrits dans le dossier ./publish :

    <Target Name="Publish-Zip" AfterTargets="Publish">
      <ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(MSBuildProjectDirectory)/publish-deploy-planet.zip" Overwrite="true" />
    </Target>
    
  4. Déployez le projet dans Azure.

    Vérifiez que l’invite de commandes se trouve bien dans le dossier du projet avant d’exécuter la commande suivante.

    az spring app deploy \
        --name planet-weather-provider \
        --runtime-version NetCore_31 \
        --main-entry Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll \
        --artifact-path ./publish-deploy-planet.zip
    

    L’option --main-entry spécifie le chemin relatif qui va du dossier racine où se trouve le fichier .zip au fichier .dll qui contient le point d’entrée de l’application. Une fois que le service a chargé le fichier .zip, il extrait tous les fichiers et dossiers, puis tente d’exécuter le point d’entrée dans le fichier .dll spécifié.

    L’exécution de cette commande peut durer plusieurs minutes.

Déployer SolarSystemWeather

Suivez les étapes suivantes pour déployer le projet SolarSystemWeather.

  1. Créez une autre application dans votre instance Azure Spring Apps pour le projet.

    az spring app create --name solar-system-weather --runtime-version NetCore_31
    

    solar-system-weather est le nom spécifié dans le fichier appsettings.json du projet SolarSystemWeather.

    L’exécution de cette commande peut durer plusieurs minutes.

  2. Accédez au répertoire du projet SolarSystemWeather.

    cd ../solar-system-weather
    
  3. Créez les fichiers binaires et le fichier .zip à déployer.

    dotnet publish -c release -o ./publish
    
  4. Déployez le projet dans Azure.

    az spring app deploy \
        --name solar-system-weather \
        --runtime-version NetCore_31 \
        --main-entry Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll \
        --artifact-path ./publish-deploy-solar.zip
    

    L’exécution de cette commande peut durer plusieurs minutes.

Affecter le point de terminaison public

Avant de tester l’application, obtenez un point de terminaison public pour une requête HTTP GET à l’application solar-system-weather.

  1. Pour affecter le point de terminaison, exécutez la commande suivante.

    az spring app update --name solar-system-weather --assign-endpoint true
    
  2. Pour obtenir l’URL du point de terminaison, exécutez la commande suivante.

    Windows :

    az spring app show --name solar-system-weather --output table
    

    Linux :

    az spring app show --name solar-system-weather | grep url
    

Test de l’application

Pour tester l’application, envoyez une requête GET à l’application solar-system-weather. Dans un navigateur, accédez à l’URL publique en ajoutant /weatherforecast à celle-ci. Par exemple : https://servicename-solar-system-weather.azuremicroservices.io/weatherforecast

La sortie est du code JSON :

[{"Key":"Mercury","Value":"very warm"},{"Key":"Venus","Value":"quite unpleasant"},{"Key":"Mars","Value":"very cool"},{"Key":"Saturn","Value":"a little bit sandy"}]

Cette réponse indique que les deux applications Spring fonctionnent. L’application SolarSystemWeather retourne les données qu’elle a récupérées à partir de l’application PlanetWeatherProvider.

Cet article explique comment créer et déployer des applications Spring sur Azure Spring Apps. Vous pouvez utiliser Azure CLI, le plug-in Maven ou Intellij. Cet article décrit chacune de ces alternatives.

Prérequis

Créer des applications Spring localement

Utilisez les commandes suivantes pour cloner l’exemple de référentiel, accéder à l’exemple de dossier, puis générer le projet.

git clone https://github.com/azure-samples/spring-petclinic-microservices
cd spring-petclinic-microservices
mvn clean package -DskipTests -Denv=cloud

La compilation du projet prend de 5 à 10 minutes. Une le projet compilé, vous devriez avoir des fichiers JAR individuels pour chaque service dans leurs dossiers respectifs.

Créer et déployer des applications sur Azure Spring Apps

Procédez comme suit pour créer et déployer des applications sur Azure Spring Apps à l’aide de l’interface CLI.

  1. Si vous n’avez pas exécuté les commandes suivantes dans les démarrages rapides précédents, exécutez-les maintenant pour définir les valeurs par défaut de l’interface CLI.

    az configure --defaults group=<resource-group-name> spring=<service-name>
    
  2. Créez les deux applications Spring de base pour PetClinic : api-gateway et customers-service.

    az spring app create \
        --name api-gateway \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi \
        --assign-endpoint
    az spring app create \
        --name customers-service \
        --runtime-version Java_17 \
        --instance-count 1 \
        --memory 2Gi
    
  3. Déployez les fichiers JAR générés à l’étape précédente.

    az spring app deploy \
        --name api-gateway \
        --artifact-path spring-petclinic-api-gateway/target/api-gateway-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    az spring app deploy \
        --name customers-service \
        --artifact-path spring-petclinic-customers-service/target/customers-service-3.0.1.jar \
        --jvm-options="-Xms2048m -Xmx2048m"
    
  4. Interrogez l’état de l’application après les déploiements à l’aide de la commande suivante.

    az spring app list --output table
    

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

    Name               Location    ResourceGroup    Production Deployment    Public Url                                           Provisioning Status    CPU    Memory    Running Instance    Registered Instance    Persistent Storage
    -----------------  ----------  ---------------  -----------------------  ---------------------------------------------------  ---------------------  -----  --------  ------------------  ---------------------  --------------------
    api-gateway        eastus      xxxxxx-sp         default                  https://<service name>-api-gateway.azuremicroservices.io   Succeeded              1      2         1/1                 1/1                    -
    customers-service  eastus      <service name>         default                                                                       Succeeded              1      2         1/1                 1/1                    -
    

Vérifier les services

Accédez, depuis un navigateur web, à api-gateway et customers-service au moyen de l’URL publique présentée précédemment au format https://<service name>-api-gateway.azuremicroservices.io.

Capture d’écran de l’exemple d’application PetClinic montrant la page Propriétaires.

Conseil

Pour résoudre les problèmes liés aux déploiements, vous pouvez utiliser la commande suivante pour obtenir un streaming des journaux en temps réel chaque fois que l’application est en cours d’exécution : az spring app logs --name <app name> --follow.

Déployer des applications supplémentaires

Pour que l’application PetClinic fonctionne avec toutes les fonctionnalités comme le Serveur d’administration, les Visites et les Vétérinaires, déployez les autres applications avec les commandes suivantes :

az spring app create \
    --name admin-server \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi \
    --assign-endpoint
az spring app create \
    --name vets-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app create \
    --name visits-service \
    --runtime-version Java_17 \
    --instance-count 1 \
    --memory 2Gi
az spring app deploy \
    --name admin-server \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-admin-server/target/admin-server-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name vets-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-vets-service/target/vets-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"
az spring app deploy \
    --name visits-service \
    --runtime-version Java_17 \
    --artifact-path spring-petclinic-visits-service/target/visits-service-3.0.1.jar \
    --jvm-options="-Xms1536m -Xmx1536m"

Nettoyer les ressources

Si vous prévoyez d’utiliser d’autres guides de démarrage rapide et tutoriels, vous pouvez conserver ces ressources. Quand vous n’en avez plus besoin, supprimez le groupe de ressources, ce qui supprime également les ressources qu’il contient. Pour supprimer le groupe de ressources à l’aide d’Azure CLI, utilisez les commandes suivantes :

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Étapes suivantes