Snabbstart: Skapa och distribuera appar till Azure Spring Apps med enterprise-planen

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för:❌ Basic/Standard ✔️ Enterprise

Den här snabbstarten visar hur du skapar och distribuerar program till Azure Spring Apps med hjälp av Enterprise-planen.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
  • Förstå och uppfylla avsnittet Krav i Enterprise-plan på Azure Marketplace.
  • Azure CLI version 2.45.0 eller senare.
  • Git.
  • Azure Spring Apps Enterprise-plantillägget. Använd följande kommando för att ta bort tidigare versioner och installera det senaste Enterprise-plantillägget. Om du tidigare har installerat spring-cloud tillägget avinstallerar du det för att undvika konfigurations- och versionsmatchningar.
    az extension add --upgrade --name spring
    az extension remove --name spring-cloud
    

Ladda ned exempelprogrammet

Använd följande kommandon för att ladda ned exemplet:

git clone https://github.com/Azure-Samples/acme-fitness-store
cd acme-fitness-store

Etablera en tjänstinstans

Använd följande steg för att etablera en Azure Spring Apps-tjänstinstans.

  1. Använd följande kommando för att logga in på Azure CLI och välja din aktiva prenumeration:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Använd följande kommando för att acceptera juridiska villkor och sekretesspolicyer för Enterprise-planen. Det här steget är bara nödvändigt om din prenumeration aldrig har använts för att skapa en Enterprise-planinstans av 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. Välj en plats. Den här platsen måste vara en plats som stöder Azure Spring Apps Enterprise-planen. Mer information finns i Vanliga frågor och svar om Azure Spring Apps.

  4. Skapa variabler för att lagra resursnamnen med hjälp av följande kommandon. Se till att ersätta platshållarna med dina egna värden. Namnet på din Azure Spring Apps-tjänstinstans måste vara mellan 4 och 32 tecken långt och får endast innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller ett tal.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Använd följande kommando för att skapa en resursgrupp:

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

    Mer information om resursgrupper finns i Vad är Azure Resource Manager?.

  6. Använd följande kommando för att skapa en Azure Spring Apps-tjänstinstans:

    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. Använd följande kommando för att skapa en Log Analytics-arbetsyta som ska användas för din Azure Spring Apps-tjänst:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Använd följande kommandon för att hämta resurs-ID:t för din Log Analytics-arbetsyta och Azure Spring Apps-tjänstinstans:

    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. Använd följande kommando för att konfigurera diagnostikinställningar för Azure Spring Apps Service:

    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. Använd följande kommandon för att skapa program för cart-service, order-service, payment-service, catalog-serviceoch 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}
    

Externalisera konfiguration med Application Configuration Service

Använd följande steg för att konfigurera programkonfigurationstjänsten.

  1. Använd följande kommando för att skapa en konfigurationslagringsplats för Application Configuration Service:

    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. Använd följande kommandon för att binda program till Application Configuration Service:

    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}
    

Aktivera tjänstregistrering och identifiering

Använd följande kommandon för att binda program till Service Registry för aktiv tjänstregistrering och identifiering:

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}

Distribuera flerspråkiga program med Tanzu Build Service

Använd följande steg för att distribuera och skapa program. För de här stegen kontrollerar du att terminalen finns i projektmappen innan du kör några kommandon.

  1. Använd följande kommando för att skapa en anpassad byggare i 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. Använd följande kommando för att skapa och distribuera betaltjänsten:

    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. Använd följande kommando för att skapa och distribuera katalogtjänsten:

    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. Använd följande kommando för att skapa och distribuera ordertjänsten:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Använd följande kommando för att skapa och distribuera kundvagnstjänsten:

    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. Använd följande kommando för att skapa och distribuera klientdelsprogrammet:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME} \
        --source-path apps/acme-shopping
    

Dricks

Om du vill felsöka distributioner kan du använda följande kommando för att hämta loggströmning i realtid när appen körs: az spring app logs --name <app name> --follow.

Dirigera begäranden till appar med Spring Cloud Gateway

Använd följande steg för att konfigurera Spring Cloud Gateway och konfigurera vägar till program.

  1. Använd följande kommando för att tilldela en slutpunkt till Spring Cloud Gateway:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Använd följande kommandon för att konfigurera Spring Cloud Gateway API-information:

    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. Använd följande kommando för att skapa vägar för kundvagnstjänsten:

    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. Använd följande kommando för att skapa vägar för ordertjänsten:

    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. Använd följande kommando för att skapa vägar för katalogtjänsten:

    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. Använd följande kommando för att skapa vägar för klientdelen:

    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. Använd följande kommandon för att hämta URL:en för 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}"
    

    Du kan öppna utdata-URL:en i en webbläsare för att utforska det distribuerade programmet.

Bläddra och prova API:er med API-portalen

Använd följande steg för att konfigurera API-portalen.

  1. Använd följande kommando för att tilldela en slutpunkt till API-portalen:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Använd följande kommandon för att hämta URL:en för API-portalen:

    export PORTAL_URL=$(az spring api-portal show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    echo "https://${PORTAL_URL}"
    

    Du kan öppna utdata-URL:en i en webbläsare för att utforska program-API:erna.


Rensa resurser

Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. Ta bort resursgruppen när den inte längre behövs, vilket tar bort resurserna i resursgruppen. Om du vill ta bort resursgruppen med hjälp av Azure CLI använder du följande kommandon:

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

Nästa steg

Nu när du har skapat och distribuerat appen fortsätter du till någon av följande valfria snabbstarter: