Démarrage rapide : Créer et déployer des applications sur Azure Spring Apps niveau Enterprise
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 à :❌ niveau De base/Standard ✔️ niveau Enterprise
Ce guide de démarrage rapide vous montre comment créer et déployer des applications sur Azure Spring Apps niveau Enterprise.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Pour provisionner un achat d’offre de la Place de marché Azure, consultez la section Conditions préalables d’Afficher l’offre Azure Spring Apps niveau Enterprise dans la Place de marché Azure.
- Azure CLI version 2.0.67 ou ultérieure.
- Git.
- jq
- Extension Azure Spring Apps niveau Enterprise (3.0.0 ou ultérieure). Utilisez la commande suivante pour supprimer les versions précédentes et installer l’extension de niveau Enterprise la plus récente. Si vous avez déjà installé l’extension
spring-cloud
, désinstallez-la pour éviter les incompatibilités de configuration et de version.az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Télécharger l’exemple d’application
Utilisez les commandes suivantes pour télécharger l’exemple :
git clone https://github.com/Azure-Samples/acme-fitness-store
cd acme-fitness-store
Provisionner une instance de service
Pour provisionner une instance de service Azure Spring Apps, procédez comme suit.
Utilisez la commande suivante pour vous connecter à l’interface Azure CLI et choisir votre abonnement actif :
az login az account list --output table az account set --subscription <subscription-ID>
Utilisez la commande suivante pour accepter les conditions d’utilisation et la déclaration de confidentialité du niveau Enterprise. Cette étape est nécessaire uniquement si votre abonnement n’a jamais été utilisé pour créer une instance de niveau Entreprise d’Azure Spring Apps.
az provider register --namespace Microsoft.SaaS az term accept \ --publisher vmware-inc \ --product azure-spring-cloud-vmware-tanzu-2 \ --plan asa-ent-hr-mtr
Sélectionnez un emplacement. Cet emplacement doit prendre en charge Azure Spring Apps niveau Enterprise. Pour plus d’informations, consultez Questions fréquentes (FAQ) sur Azure Spring Apps.
Utilisez la commande suivante pour créer un groupe de ressources :
az group create \ --name <resource-group-name> \ --location <location>
Pour plus d’informations sur les groupes de ressources, consultez Qu’est-ce qu’Azure Resource Manager ?.
Préparez un nom pour votre instance de service Azure Spring Apps. Le nom doit comporter entre 4 et 32 caractères, et contenir uniquement des lettres minuscules, des chiffres et des traits d’union. Le premier caractère du nom du service doit être une lettre, et le dernier doit être une lettre ou un chiffre.
Utilisez la commande suivante pour créer une instance de service Azure Spring Apps :
az spring create \ --resource-group <resource-group-name> \ --name <Azure-Spring-Apps-service-instance-name> \ --sku enterprise \ --enable-application-configuration-service \ --enable-service-registry \ --enable-gateway \ --enable-api-portal
Utilisez la commande suivante pour créer un espace de travail Log Analytics à utiliser pour votre service Azure Spring Apps :
az monitor log-analytics workspace create \ --resource-group <resource-group-name> \ --workspace-name <workspace-name> \ --location <location>
Utilisez les commandes suivantes pour récupérer l’ID de ressource de votre espace de travail Log Analytics et votre instance de service Azure Spring Apps :
LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \ --resource-group <resource-group-name> \ --workspace-name <workspace-name> | jq -r '.id') SPRING_CLOUD_RESOURCE_ID=$(az spring show \ --resource-group <resource-group-name> \ --name <Azure-Spring-Apps-service-instance-name> | jq -r '.id')
Utilisez la commande suivante pour configurer les paramètres de diagnostic pour le service Azure Spring Apps :
az monitor diagnostic-settings create \ --name "send-logs-and-metrics-to-log-analytics" \ --resource ${SPRING_CLOUD_RESOURCE_ID} \ --workspace ${LOG_ANALYTICS_RESOURCE_ID} \ --logs '[ { "category": "ApplicationConsole", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } }, { "category": "SystemLogs", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } }, { "category": "IngressLogs", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } } ]' \ --metrics '[ { "category": "AllMetrics", "enabled": true, "retentionPolicy": { "enabled": false, "days": 0 } } ]'
Utilisez les commandes suivantes pour créer des applications pour
cart-service
,order-service
,payment-service
,catalog-service
etfrontend
:az spring app create \ --resource-group <resource-group-name> \ --name cart-service \ --service <Azure-Spring-Apps-service-instance-name> az spring app create \ --resource-group <resource-group-name> \ --name order-service \ --service <Azure-Spring-Apps-service-instance-name> az spring app create \ --resource-group <resource-group-name> \ --name payment-service \ --service <Azure-Spring-Apps-service-instance-name> az spring app create \ --resource-group <resource-group-name> \ --name catalog-service \ --service <Azure-Spring-Apps-service-instance-name> az spring app create \ --resource-group <resource-group-name> \ --name frontend \ --service <Azure-Spring-Apps-service-instance-name>
Externaliser la configuration avec le service de configuration des applications
Pour configurer le service de configuration des applications, procédez comme suit.
Utilisez la commande suivante pour créer un référentiel de configuration pour le service de configuration des applications :
az spring application-configuration-service git repo add \ --resource-group <resource-group-name> \ --name acme-fitness-store-config \ --service <Azure-Spring-Apps-service-instance-name> \ --label main \ --patterns "catalog/default,catalog/key-vault,identity/default,identity/key-vault,payment/default" \ --uri "https://github.com/Azure-Samples/acme-fitness-store-config"
Utilisez les commandes suivantes pour lier des applications au service de configuration des applications :
az spring application-configuration-service bind \ --resource-group <resource-group-name> \ --app payment-service \ --service <Azure-Spring-Apps-service-instance-name> az spring application-configuration-service bind \ --resource-group <resource-group-name> \ --app catalog-service \ --service <Azure-Spring-Apps-service-instance-name>
Activer l’inscription et la découverte des services
Pour activer l’inscription et la découverte des services, utilisez les commandes suivantes pour lier des applications au registre de services :
az spring service-registry bind \
--resource-group <resource-group-name> \
--app payment-service \
--service <Azure-Spring-Apps-service-instance-name>
az spring service-registry bind \
--resource-group <resource-group-name> \
--app catalog-service \
--service <Azure-Spring-Apps-service-instance-name>
Déployer des applications polyglottes avec Tanzu Build Service
Pour déployer et générer des applications, procédez comme suit. Pour ces étapes, assurez-vous que le terminal se trouve dans le dossier du projet avant d’exécuter des commandes.
Utilisez la commande suivante pour créer un générateur personnalisé dans Tanzu Build Service :
az spring build-service builder create \ --resource-group <resource-group-name> \ --name quickstart-builder \ --service <Azure-Spring-Apps-service-instance-name> \ --builder-file azure/builder.json
Utilisez la commande suivante pour générer et déployer le service de paiement :
az spring app deploy \ --resource-group <resource-group-name> \ --name payment-service \ --service <Azure-Spring-Apps-service-instance-name> \ --config-file-pattern payment/default \ --source-path apps/acme-payment \ --build-env BP_JVM_VERSION=17
Utilisez la commande suivante pour générer et déployer le service de catalogue :
az spring app deploy \ --resource-group <resource-group-name> \ --name catalog-service \ --service <Azure-Spring-Apps-service-instance-name> \ --config-file-pattern catalog/default \ --source-path apps/acme-catalog \ --build-env BP_JVM_VERSION=17
Utilisez la commande suivante pour générer et déployer le service de commande :
az spring app deploy \ --resource-group <resource-group-name> \ --name order-service \ --service <Azure-Spring-Apps-service-instance-name> \ --builder quickstart-builder \ --source-path apps/acme-order
Utilisez la commande suivante pour générer et déployer le service de panier :
az spring app deploy \ --resource-group <resource-group-name> \ --name cart-service \ --service <Azure-Spring-Apps-service-instance-name> \ --builder quickstart-builder \ --env "CART_PORT=8080" \ --source-path apps/acme-cart
Utilisez la commande suivante pour générer et déployer l’application frontale :
az spring app deploy \ --resource-group <resource-group-name> \ --name frontend \ --service <Azure-Spring-Apps-service-instance-name> \ --source-path apps/acme-shopping
Conseil
Pour résoudre les problèmes liés aux déploiements, vous pouvez utiliser la commande suivante afin d’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
.
Acheminer des demandes vers des applications avec Spring Cloud Gateway
Pour configurer Spring Cloud Gateway et configurer des itinéraires vers des applications, procédez comme suit.
Utilisez la commande suivante pour attribuer un point de terminaison à Spring Cloud Gateway :
az spring gateway update \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> \ --assign-endpoint true
Utilisez les commandes suivantes pour configurer les informations d’API Spring Cloud Gateway :
GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') az spring gateway update \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> \ --api-description "Fitness Store API" \ --api-title "Fitness Store" \ --api-version "v1.0" \ --server-url "https://${GATEWAY_URL}" \ --allowed-origins "*"
Utilisez la commande suivante pour créer des itinéraires pour le service de panier :
az spring gateway route-config create \ --resource-group <resource-group-name> \ --name cart-routes \ --service <Azure-Spring-Apps-service-instance-name> \ --app-name cart-service \ --routes-file azure/routes/cart-service.json
Utilisez la commande suivante pour créer des itinéraires pour le service de commande :
az spring gateway route-config create \ --resource-group <resource-group-name> \ --name order-routes \ --service <Azure-Spring-Apps-service-instance-name> \ --app-name order-service \ --routes-file azure/routes/order-service.json
Utilisez la commande suivante pour créer des itinéraires pour le service de catalogue :
az spring gateway route-config create \ --resource-group <resource-group-name> \ --name catalog-routes \ --service <Azure-Spring-Apps-service-instance-name> \ --app-name catalog-service \ --routes-file azure/routes/catalog-service.json
Utilisez la commande suivante pour créer des itinéraires pour l’application frontale :
az spring gateway route-config create \ --resource-group <resource-group-name> \ --name frontend-routes \ --service <Azure-Spring-Apps-service-instance-name> \ --app-name frontend \ --routes-file azure/routes/frontend.json
Utilisez les commandes suivantes pour récupérer l’URL de Spring Cloud Gateway :
GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') echo "https://${GATEWAY_URL}"
Vous pouvez ouvrir l’URL de sortie dans un navigateur pour explorer l’application déployée.
Parcourir et tester des API avec le portail des API
Pour configurer le portail des API, procédez comme suit.
Utilisez la commande suivante pour attribuer un point de terminaison au portail des API :
az spring api-portal update \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> \ --assign-endpoint true
Utilisez les commandes suivantes pour récupérer l’URL du portail d’API :
PORTAL_URL=$(az spring api-portal show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') echo "https://${PORTAL_URL}"
Vous pouvez ouvrir l’URL de sortie dans un navigateur pour explorer les API d’application.
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
Maintenant que vous avez créé et déployé votre application avec succès, passez à l’un des guides de démarrage rapide facultatifs suivants :