Démarrage rapide : Créer et déployer des applications sur Azure Spring Apps
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
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
- Avoir suivi les guides de démarrage rapide précédents de cette série :
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.
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
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.
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.
Accédez au répertoire du dossier du projet
PlanetWeatherProvider
.cd steeltoe-sample/src/planet-weather-provider
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>
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.
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 projetSolarSystemWeather
.L’exécution de cette commande peut durer plusieurs minutes.
Accédez au répertoire du projet
SolarSystemWeather
.cd ../solar-system-weather
Créez les fichiers binaires et le fichier .zip à déployer.
dotnet publish -c release -o ./publish
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
.
Pour affecter le point de terminaison, exécutez la commande suivante.
az spring app update --name solar-system-weather --assign-endpoint true
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
- Avoir suivi les guides de démarrage rapide précédents de cette série :
- JDK 17
- Maven 3.0 ou ultérieur
- Un abonnement Azure. Si vous n’avez pas d’abonnement, créez un compte gratuit avant de commencer.
- Éventuellement, Azure CLI version 2.45.0 ou ultérieure. Installez l’extension Azure Spring Apps avec la commande suivante :
az extension add --name spring
- Éventuellement, Azure Toolkit for IntelliJ.
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.
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>
Créez les deux applications Spring de base pour PetClinic :
api-gateway
etcustomers-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
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"
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
.
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 ..."