Szybki start: tworzenie i wdrażanie aplikacji w usłudze Azure Spring Apps przy użyciu planu Enterprise

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy:❌ Podstawowa/Standardowa ✔️ Enterprise

W tym przewodniku Szybki start pokazano, jak tworzyć i wdrażać aplikacje w usłudze Azure Spring Apps przy użyciu planu Enterprise.

Wymagania wstępne

Pobieranie przykładowej aplikacji

Użyj następujących poleceń, aby pobrać przykład:

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

Aprowizuj wystąpienie usługi

Wykonaj poniższe kroki, aby aprowizować wystąpienie usługi Azure Spring Apps.

  1. Użyj następującego polecenia, aby zalogować się do interfejsu wiersza polecenia platformy Azure i wybrać aktywną subskrypcję:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Użyj następującego polecenia, aby zaakceptować warunki prawne i oświadczenia o ochronie prywatności dla planu Enterprise. Ten krok jest niezbędny tylko wtedy, gdy subskrypcja nigdy nie została użyta do utworzenia wystąpienia planu Enterprise usługi 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. Wybierz lokalizację. Ta lokalizacja musi być lokalizacją obsługującą plan Usługi Azure Spring Apps Enterprise. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące usługi Azure Spring Apps.

  4. Utwórz zmienne do przechowywania nazw zasobów przy użyciu następujących poleceń. Pamiętaj, aby zastąpić symbole zastępcze własnymi wartościami. Nazwa wystąpienia usługi Azure Spring Apps musi mieć długość od 4 do 32 znaków i może zawierać tylko małe litery, cyfry i łączniki. Pierwszy znak nazwy usługi musi być literą, a ostatni znak musi być literą lub cyfrą.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Użyj następującego polecenia, aby utworzyć grupę zasobów:

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

    Aby uzyskać więcej informacji na temat grup zasobów, zobacz Co to jest usługa Azure Resource Manager?.

  6. Użyj następującego polecenia, aby utworzyć wystąpienie usługi 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. Użyj następującego polecenia, aby utworzyć obszar roboczy usługi Log Analytics, który ma być używany dla usługi Azure Spring Apps:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Użyj następujących poleceń, aby pobrać identyfikator zasobu dla obszaru roboczego usługi Log Analytics i wystąpienia usługi 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. Użyj następującego polecenia, aby skonfigurować ustawienia diagnostyczne dla usługi 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. Użyj następujących poleceń, aby utworzyć aplikacje dla cart-servicesystemu , , order-servicepayment-service, catalog-servicei 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}
    

Externalize configuration with Application Configuration Service

Wykonaj poniższe kroki, aby skonfigurować usługę konfiguracji aplikacji.

  1. Użyj następującego polecenia, aby utworzyć repozytorium konfiguracji dla usługi Konfiguracji aplikacji:

    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. Użyj następujących poleceń, aby powiązać aplikacje z usługą 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}
    

Aktywowanie rejestracji i odnajdywania usługi

Aby aktywować rejestrację i odnajdywanie usługi, użyj następujących poleceń, aby powiązać aplikacje z rejestrem usług:

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}

Wdrażanie aplikacji wielolotowych za pomocą usługi Tanzu Build Service

Wykonaj poniższe kroki, aby wdrożyć i skompilować aplikacje. Aby wykonać te kroki, upewnij się, że terminal znajduje się w folderze projektu przed uruchomieniem jakichkolwiek poleceń.

  1. Użyj następującego polecenia, aby utworzyć konstruktor niestandardowy w usłudze 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. Użyj następującego polecenia, aby skompilować i wdrożyć usługę płatności:

    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. Użyj następującego polecenia, aby skompilować i wdrożyć usługę wykazu:

    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. Użyj następującego polecenia, aby skompilować i wdrożyć usługę zamówień:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Użyj następującego polecenia, aby skompilować i wdrożyć usługę koszyka:

    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. Użyj następującego polecenia, aby skompilować i wdrożyć aplikację frontonu:

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

Napiwek

Aby usunąć problemy z wdrożeniami, możesz użyć następującego polecenia, aby pobrać dzienniki przesyłane strumieniowo w czasie rzeczywistym za każdym razem, gdy aplikacja jest uruchomiona: az spring app logs --name <app name> --follow.

Kierowanie żądań do aplikacji za pomocą usługi Spring Cloud Gateway

Wykonaj poniższe kroki, aby skonfigurować usługę Spring Cloud Gateway i skonfigurować trasy do aplikacji.

  1. Użyj następującego polecenia, aby przypisać punkt końcowy do usługi Spring Cloud Gateway:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Użyj następujących poleceń, aby skonfigurować informacje o interfejsie API usługi 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. Użyj następującego polecenia, aby utworzyć trasy dla usługi koszyka:

    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. Użyj następującego polecenia, aby utworzyć trasy dla usługi zamówienia:

    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. Użyj następującego polecenia, aby utworzyć trasy dla usługi katalogu:

    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. Użyj następującego polecenia, aby utworzyć trasy dla frontonu:

    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. Użyj następujących poleceń, aby pobrać adres URL bramy 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}"
    

    Adres URL danych wyjściowych można otworzyć w przeglądarce, aby eksplorować wdrożona aplikację.

Przeglądanie interfejsów API i wypróbowanie ich za pomocą portalu interfejsu API

Aby skonfigurować portal interfejsu API, wykonaj następujące kroki.

  1. Użyj następującego polecenia, aby przypisać punkt końcowy do portalu interfejsu API:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Użyj następujących poleceń, aby pobrać adres URL portalu interfejsu 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}"
    

    Możesz otworzyć adres URL danych wyjściowych w przeglądarce, aby eksplorować interfejsy API aplikacji.


Czyszczenie zasobów

Jeśli planujesz kontynuować pracę z kolejnymi przewodnikami Szybki start i samouczkami, możesz pozostawić te zasoby na miejscu. Gdy grupa zasobów nie będzie już potrzebna, usuń grupę zasobów, która usuwa zasoby w grupie zasobów. Aby usunąć grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure, użyj następujących poleceń:

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

Następne kroki

Teraz, gdy aplikacja została pomyślnie skompilowana i wdrożona, przejdź do dowolnego z następujących opcjonalnych przewodników Szybki start: