Quickstart: Apps bouwen en implementeren in Azure Spring Apps met behulp van het Enterprise-abonnement

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

Dit artikel is van toepassing op:❌ Basic/Standard ✔️ Enterprise

In deze quickstart ziet u hoe u toepassingen bouwt en implementeert in Azure Spring Apps met behulp van het Enterprise-abonnement.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken
  • Inzicht in en voldoen aan de sectie Vereisten van het Enterprise-plan in Azure Marketplace.
  • De Azure CLI versie 2.45.0 of hoger.
  • Git.
  • De Azure Spring Apps Enterprise-abonnementsextensie. Gebruik de volgende opdracht om eerdere versies te verwijderen en de nieuwste Enterprise-abonnementsextensie te installeren. Als u de extensie eerder hebt geïnstalleerd, verwijdert u deze spring-cloud om te voorkomen dat de configuratie en versie niet overeenkomen.
    az extension add --upgrade --name spring
    az extension remove --name spring-cloud
    

De voorbeeld-app downloaden

Gebruik de volgende opdrachten om het voorbeeld te downloaden:

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

Een service-exemplaar inrichten

Gebruik de volgende stappen om een Azure Spring Apps-service-exemplaar in te richten.

  1. Gebruik de volgende opdracht om u aan te melden bij de Azure CLI en uw actieve abonnement te kiezen:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Gebruik de volgende opdracht om de juridische voorwaarden en privacyverklaringen voor het Enterprise-abonnement te accepteren. Deze stap is alleen nodig als uw abonnement nog nooit is gebruikt om een Enterprise-abonnementexemplaren van Azure Spring Apps te maken.

    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. Selecteer een locatie. Deze locatie moet een locatie zijn die het Azure Spring Apps Enterprise-abonnement ondersteunt. Zie de veelgestelde vragen over Azure Spring Apps voor meer informatie.

  4. Maak variabelen voor het opslaan van de resourcenamen met behulp van de volgende opdrachten. Vervang de tijdelijke aanduidingen door uw eigen waarden. De naam van uw Azure Spring Apps-service-exemplaar moet tussen 4 en 32 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. Het eerste teken van de servicenaam moet een letter zijn en het laatste teken moet een letter of een cijfer zijn.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Gebruik de volgende opdracht om een resourcegroep te maken:

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

    Zie Wat is Azure Resource Manager? voor meer informatie over resourcegroepen.

  6. Gebruik de volgende opdracht om een Azure Spring Apps-service-exemplaar te maken:

    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. Gebruik de volgende opdracht om een Log Analytics-werkruimte te maken die moet worden gebruikt voor uw Azure Spring Apps-service:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Gebruik de volgende opdrachten om de resource-id voor uw Log Analytics-werkruimte en azure Spring Apps-service-exemplaar op te halen:

    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. Gebruik de volgende opdracht om diagnostische instellingen voor de Azure Spring Apps Service te configureren:

    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. Gebruik de volgende opdrachten om toepassingen te maken voorcart-service, order-service, en catalog-servicepayment-service: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}
    

Configuratie extern maken met Application Configuration Service

Gebruik de volgende stappen om de toepassingsconfiguratieservice te configureren.

  1. Gebruik de volgende opdracht om een configuratieopslagplaats te maken voor de toepassingsconfiguratieservice:

    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. Gebruik de volgende opdrachten om toepassingen te binden aan de 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}
    

Serviceregistratie en detectie activeren

Als u serviceregistratie en detectie wilt activeren, gebruikt u de volgende opdrachten om toepassingen te binden aan serviceregister:

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}

Polyglot-toepassingen implementeren met Tanzu Build Service

Gebruik de volgende stappen om toepassingen te implementeren en te bouwen. Voor deze stappen moet u ervoor zorgen dat de terminal zich in de projectmap bevindt voordat u opdrachten uitvoert.

  1. Gebruik de volgende opdracht om een aangepaste opbouwfunctie te maken in 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. Gebruik de volgende opdracht om de betalingsservice te bouwen en te implementeren:

    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. Gebruik de volgende opdracht om de catalogusservice te bouwen en te implementeren:

    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. Gebruik de volgende opdracht om de orderservice te bouwen en te implementeren:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Gebruik de volgende opdracht om de winkelwagenservice te bouwen en te implementeren:

    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. Gebruik de volgende opdracht om de front-endtoepassing te bouwen en te implementeren:

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

Tip

Als u problemen met implementaties wilt oplossen, kunt u de volgende opdracht gebruiken om logboeken in realtime te streamen wanneer de app wordt uitgevoerd: az spring app logs --name <app name> --follow.

Aanvragen routeren naar apps met Spring Cloud Gateway

Gebruik de volgende stappen om Spring Cloud Gateway te configureren en routes naar toepassingen te configureren.

  1. Gebruik de volgende opdracht om een eindpunt toe te wijzen aan Spring Cloud Gateway:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Gebruik de volgende opdrachten om api-gegevens van Spring Cloud Gateway te configureren:

    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. Gebruik de volgende opdracht om routes te maken voor de winkelwagenservice:

    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. Gebruik de volgende opdracht om routes voor de orderservice te maken:

    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. Gebruik de volgende opdracht om routes voor de catalogusservice te maken:

    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. Gebruik de volgende opdracht om routes voor de front-end te maken:

    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. Gebruik de volgende opdrachten om de URL voor Spring Cloud Gateway op te halen:

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

    U kunt de uitvoer-URL openen in een browser om de geïmplementeerde toepassing te verkennen.

Bladeren en API's uitproberen met API Portal

Gebruik de volgende stappen om de API-portal te configureren.

  1. Gebruik de volgende opdracht om een eindpunt toe te wijzen aan DE API-portal:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Gebruik de volgende opdrachten om de URL voor API Portal op te halen:

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

    U kunt de uitvoer-URL in een browser openen om de toepassings-API's te verkennen.


Resources opschonen

Als u van plan bent om verder te gaan met volgende snelstarts en zelfstudies, kunt u deze resources het beste intact laten. Als u de resourcegroep niet meer nodig hebt, verwijdert u deze. Hierdoor worden ook de resources in de resourcegroep verwijderd. Als u de resourcegroep wilt verwijderen met behulp van Azure CLI, gebruikt u de volgende opdrachten:

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

Volgende stappen

Nu u uw app hebt gebouwd en geïmplementeerd, gaat u verder met een van de volgende optionele quickstarts: