Schnellstart: Erstellen und Bereitstellen von Anwendungen in Azure Spring Apps mithilfe des Enterprise-Plans

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

Dieser Artikel gilt für:❌ Basic/Standard ✔️ Enterprise

In dieser Schnellstartanleitung wird das Erstellen und Bereitstellen von Anwendungen in Azure Spring Apps über den Enterprise-Plan veranschaulicht.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
  • Verstehen und Erfüllen des Abschnitts Anforderungen des Enterprise-Plans in Azure Marketplace.
  • Die Azure CLI Version 2.45.0 oder höher.
  • Git.
  • Die Erweiterung des Azure Spring Apps Enterprise-Plans. Verwenden Sie den folgenden Befehl, um frühere Versionen zu entfernen und die neueste Erweiterung des Enterprise-Plans zu installieren. Wenn Sie zuvor die spring-cloud-Erweiterung installiert hatten, deinstallieren Sie diese Erweiterung, um Konfigurations- und Versionskonflikte zu vermeiden.
    az extension add --upgrade --name spring
    az extension remove --name spring-cloud
    

Herunterladen der Beispiel-App

Verwenden Sie die folgenden Befehle, um das Beispiel herunterzuladen:

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

Bereitstellen einer Dienstinstanz

Führen Sie die folgenden Schritte aus, um eine Azure Spring Apps-Dienstinstanz bereitstellen.

  1. Verwenden Sie den folgenden Befehl, um sich bei der Azure CLI anzumelden und Ihr aktives Abonnement auszuwählen:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Führen Sie den folgenden Befehl aus, um die rechtlichen Bedingungen und Datenschutzbestimmungen für den Enterprise-Plan zu akzeptieren. Dieser Schritt ist nur erforderlich, wenn Ihr Abonnement noch nie zum Erstellen einer Instanz des Enterprise-Plans von Azure Spring Apps verwendet wurde.

    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. Wählen Sie einen Standort aus. Dieser Speicherort muss ein Speicherort sein, der den Azure Spring Apps Enterprise-Plan unterstützt. Weitere Informationen finden Sie in den Häufig gestellten Fragen zu Azure Spring Apps.

  4. Erstellen Sie Variablen zur Aufnahme der Ressourcennamen, indem Sie die folgenden Befehle verwenden. Ersetzen Sie die Platzhalter durch Ihre eigenen Werte. Der Name Ihrer Azure Spring Apps-Dienstinstanz muss zwischen 4 und 32 Zeichen lang sein und darf nur Kleinbuchstaben, Zahlen und Bindestriche enthalten. Das erste Zeichen des Dienstnamens muss ein Buchstabe und das letzte Zeichen entweder ein Buchstabe oder eine Ziffer sein.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Verwenden Sie den folgenden Befehl, um eine Ressourcengruppe zu erstellen:

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

    Weitere Informationen zu Ressourcengruppen finden Sie unter Was ist Azure Resource Manager?.

  6. Verwenden Sie den folgenden Befehl, um eine Azure Spring Apps-Dienstinstanz zu erstellen:

    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. Verwenden Sie den folgenden Befehl, um einen Log Analytics-Arbeitsbereich zu erstellen, der für Ihren Azure Spring Apps-Dienst verwendet werden soll:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Verwenden Sie die folgenden Befehle, um die Ressourcen-ID für Ihren Log Analytics-Arbeitsbereich und die Azure Spring Apps-Dienstinstanz abzurufen:

    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. Verwenden Sie den folgenden Befehl, um Diagnoseeinstellungen für den Azure Spring Apps-Dienst zu konfigurieren:

    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. Verwenden Sie die folgenden Befehle, um Anwendungen für cart-service, order-service, payment-service, catalog-service und frontend zu erstellen:

    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}
    

Externe Konfiguration mit Anwendungskonfigurationsdienst

Führen Sie die folgenden Schritte aus, um den Anwendungskonfigurationsdienst zu konfigurieren.

  1. Verwenden Sie den folgenden Befehl, um ein Konfigurationsrepository für den Anwendungskonfigurationsdienst zu erstellen:

    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. Verwenden Sie die folgenden Befehle, um Anwendungen an den Anwendungskonfigurationsdienst zu binden:

    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}
    

Aktivieren der Dienstregistrierung und -ermittlung

Verwenden Sie zum Aktivieren der Dienstregistrierung und -ermittlung die folgenden Befehle, um Anwendungen an die Dienstregistrierung zu binden:

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}

Bereitstellen von Polyglot-Anwendungen mit dem Tanzu Build Service

Führen Sie die folgenden Schritte aus, um die Anwendungen bereitzustellen und zu erstellen: Stellen Sie für diese Schritte sicher, dass Sie sich im Terminal im Projektordner befinden, bevor Sie Befehle ausführen.

  1. Verwenden Sie den folgenden Befehl, um einen benutzerdefinierten Generator in Tanzu Build Service zu erstellen:

    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. Verwenden Sie den folgenden Befehl, um den Zahlungsdienst zu erstellen und bereitzustellen:

    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. Verwenden Sie den folgenden Befehl, um den Katalogdienst zu erstellen und bereitzustellen:

    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. Verwenden Sie den folgenden Befehl, um den Auftragsdienst zu erstellen und bereitzustellen:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Verwenden Sie den folgenden Befehl, um den Einkaufskorbdienst zu erstellen und bereitzustellen:

    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. Verwenden Sie den folgenden Befehl, um die Frontend-Anwendung zu erstellen und bereitzustellen:

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

Tipp

Zum Beheben von Problemen bei der Bereitstellung können Sie den folgenden Befehl verwenden, um Protokollstreaming in Echtzeit zu erhalten, wenn die App ausgeführt wird: az spring app logs --name <app name> --follow.

Weiterleiten von Anforderungen an Apps mit Spring Cloud Gateway

Führen Sie die folgenden Schritte aus, um das Spring Cloud Gateway zu konfigurieren und Routen zu Anwendungen zu konfigurieren.

  1. Verwenden Sie den folgenden Befehl, um dem Spring Cloud Gateway einen Endpunkt zuzuweisen:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Verwenden Sie die folgenden Befehle, um die Informationen der Spring Cloud Gateway-API zu konfigurieren:

    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. Verwenden Sie den folgenden Befehl, um Routen für den Einkaufswagendienst zu erstellen:

    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. Verwenden Sie den folgenden Befehl, um Routen für den Auftragsdienst zu erstellen:

    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. Verwenden Sie den folgenden Befehl, um Routen für den Katalogdienst zu erstellen:

    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. Verwenden Sie den folgenden Befehl, um Routen für das Frontend zu erstellen:

    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. Verwenden Sie die folgenden Befehle, um die URL für das Spring Cloud Gateway abzurufen:

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

    Sie können die Ausgabe-URL in einem Browser öffnen, um die bereitgestellte Anwendung zu erkunden.

Durchsuchen und Testen von APIs mit API-Portal

Führen Sie die folgenden Schritte aus, um das API-Portal zu konfigurieren.

  1. Verwenden Sie den folgenden Befehl, um dem API-Portal einen Endpunkt zuzuweisen:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Verwenden Sie die folgenden Befehle, um die URL für das API-Portal abzurufen:

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

    Sie können die Ausgabe-URL in einem Browser öffnen, um die Anwendungs-APIs zu erkunden.


Bereinigen von Ressourcen

Falls Sie mit weiteren Schnellstartanleitungen und Tutorials fortfahren möchten, sollten Sie die Ressourcen nicht bereinigen. Wenn Sie die Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Dadurch werden die Ressourcen in der Ressourcengruppe gelöscht. Wenn Sie die Ressourcengruppe mithilfe der Azure CLI löschen möchten, verwenden Sie die folgenden Befehle:

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

Nächste Schritte

Nachdem Sie Ihre App erfolgreich erstellt und bereitgestellt haben, fahren Sie mit einem der folgenden optionalen Schnellstarts fort: