Démarrage rapide : Créer et déployer des applications sur Azure Spring Apps à l’aide du plan Entreprise

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 quickstart vous montre comment créer et déployer des applications sur Azure Spring Apps en utilisant le plan Enterprise.

Prérequis

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.

  1. 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>
    
  2. 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
    
  3. Sélectionnez un emplacement. Cet emplacement doit être un emplacement prenant en charge le plan Azure Spring Apps Enterprise. Pour plus d’informations, consultez Questions fréquentes (FAQ) sur Azure Spring Apps.

  4. Créez des variables destinées à contenir les noms de ressources à l’aide des commandes suivantes. Veillez à remplacer les espaces réservés par vos valeurs. Le nom de votre instance de service Azure Spring Apps doit avoir 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.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Utilisez la commande suivante pour créer un groupe de ressources :

    az group create \
        --name ${RESOURCE_GROUP} \
        --location ${LOCATION}
    

    Pour plus d’informations sur les groupes de ressources, consultez Qu’est-ce qu’Azure Resource Manager ?.

  6. Utilisez la commande suivante pour créer une instance de service Azure Spring Apps :

    az spring create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --sku enterprise \
        --enable-application-configuration-service \
        --enable-service-registry \
        --enable-gateway \
        --enable-api-portal
    
  7. 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} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. 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 :

    export LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --query id \
        --output tsv)
    
    export AZURE_SPRING_APPS_RESOURCE_ID=$(az spring show \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --query id \
        --output tsv)
    
  9. 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 ${AZURE_SPRING_APPS_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
               }
             }
           ]'
    
  10. Utilisez les commandes suivantes pour créer des applications pour cart-service, order-service, payment-service, catalog-service et frontend :

    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME}
    

Externaliser la configuration avec le service de configuration des applications

Pour configurer le service de configuration des applications, procédez comme suit.

  1. 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 acme-fitness-store-config \
        --service ${SERVICE_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"
    
  2. Utilisez les commandes suivantes pour lier des applications au service de configuration des applications :

    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app payment-service \
        --service ${SERVICE_NAME}
    
    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app catalog-service \
        --service ${SERVICE_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} \
    --app payment-service \
    --service ${SERVICE_NAME}

az spring service-registry bind \
    --resource-group ${RESOURCE_GROUP} \
    --app catalog-service \
    --service ${SERVICE_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.

  1. 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 quickstart-builder \
        --service ${SERVICE_NAME} \
        --builder-file azure-spring-apps-enterprise/resources/json/tbs/builder.json
    
  2. Utilisez la commande suivante pour générer et déployer le service de paiement :

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern payment/default \
        --source-path apps/acme-payment \
        --build-env BP_JVM_VERSION=17
    
  3. Utilisez la commande suivante pour générer et déployer le service de catalogue :

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern catalog/default \
        --source-path apps/acme-catalog \
        --build-env BP_JVM_VERSION=17
    
  4. Utilisez la commande suivante pour générer et déployer le service de commande :

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Utilisez la commande suivante pour générer et déployer le service de panier :

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --env "CART_PORT=8080" \
        --source-path apps/acme-cart
    
  6. Utilisez la commande suivante pour générer et déployer l’application frontale :

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_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.

  1. Utilisez la commande suivante pour attribuer un point de terminaison à Spring Cloud Gateway :

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Utilisez les commandes suivantes pour configurer les informations d’API Spring Cloud Gateway :

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --api-description "Fitness Store API" \
        --api-title "Fitness Store" \
        --api-version "v1.0" \
        --server-url "https://${GATEWAY_URL}" \
        --allowed-origins "*"
    
  3. 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 cart-routes \
        --service ${SERVICE_NAME} \
        --app-name cart-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/cart-service.json
    
  4. 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 order-routes \
        --service ${SERVICE_NAME} \
        --app-name order-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/order-service.json
    
  5. 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 catalog-routes \
        --service ${SERVICE_NAME} \
        --app-name catalog-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service.json
    
  6. 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 frontend-routes \
        --service ${SERVICE_NAME} \
        --app-name frontend \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/frontend.json
    
  7. Utilisez les commandes suivantes pour récupérer l’URL de Spring Cloud Gateway :

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    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.

  1. Utilisez la commande suivante pour attribuer un point de terminaison au portail des API :

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Utilisez les commandes suivantes pour récupérer l’URL du portail d’API :

    export PORTAL_URL=$(az spring api-portal show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    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 :