Hızlı Başlangıç: Kurumsal planı kullanarak uygulamaları derleme ve Azure Spring Apps'e dağıtma

Not

Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.

Bu makale şunlar için geçerlidir:❌ Temel/Standart ✔️ Kurumsal

Bu hızlı başlangıçta, Kurumsal planı kullanarak Azure Spring Apps'te uygulama derleme ve dağıtma adımları gösterilmektedir.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
  • Azure Market'da Kurumsal planın Gereksinimler bölümünü anlayın ve yerine getirin.
  • Azure CLI sürüm 2.45.0 veya üzeri.
  • Git.
  • Azure Spring Apps Kurumsal plan uzantısı. Önceki sürümleri kaldırmak ve en son Kurumsal plan uzantısını yüklemek için aşağıdaki komutu kullanın. Uzantıyı spring-cloud daha önce yüklediyseniz yapılandırma ve sürüm uyuşmazlıklarını önlemek için uzantıyı kaldırın.
    az extension add --upgrade --name spring
    az extension remove --name spring-cloud
    

Örnek uygulamayı indirme

Örneği indirmek için aşağıdaki komutları kullanın:

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

Hizmet örneği sağlama

Azure Spring Apps hizmet örneğini sağlamak için aşağıdaki adımları kullanın.

  1. Azure CLI'da oturum açmak ve etkin aboneliğinizi seçmek için aşağıdaki komutu kullanın:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Kurumsal plan için yasal koşulları ve gizlilik bildirimlerini kabul etmek için aşağıdaki komutu kullanın. Bu adım yalnızca aboneliğiniz Azure Spring Apps'in Kurumsal plan örneğini oluşturmak için hiç kullanılmamışsa gereklidir.

    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. Bir konum seçin. Bu konum, Azure Spring Apps Kurumsal planını destekleyen bir konum olmalıdır. Daha fazla bilgi için bkz . Azure Spring Apps SSS.

  4. Aşağıdaki komutları kullanarak kaynak adlarını tutmak için değişkenler oluşturun. Yer tutucuları kendi değerlerinizle değiştirmeyi unutmayın. Azure Spring Apps hizmet örneğinizin adı 4 ila 32 karakter uzunluğunda olmalıdır ve yalnızca küçük harf, sayı ve kısa çizgi içerebilir. Hizmet adının ilk karakteri bir harf, son karakter ise harf veya sayı olmalıdır.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Kaynak grubu oluşturmak için aşağıdaki komutu kullanın:

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

    Kaynak grupları hakkında daha fazla bilgi için bkz . Azure Resource Manager nedir?.

  6. Azure Spring Apps hizmet örneği oluşturmak için aşağıdaki komutu kullanın:

    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. Azure Spring Apps hizmetiniz için kullanılacak bir Log Analytics Çalışma Alanı oluşturmak için aşağıdaki komutu kullanın:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Log Analytics Çalışma Alanınızın ve Azure Spring Apps hizmet örneğinizin Kaynak Kimliğini almak için aşağıdaki komutları kullanın:

    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. Azure Spring Apps Hizmeti için tanılama ayarlarını yapılandırmak için aşağıdaki komutu kullanın:

    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. , , payment-serviceorder-service, catalog-serviceve frontendiçin uygulamalar oluşturmak için cart-serviceaşağıdaki komutları kullanın:

    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}
    

Uygulama Yapılandırma Hizmeti ile yapılandırmayı dışlaştırma

Uygulama Yapılandırma Hizmeti'ni yapılandırmak için aşağıdaki adımları kullanın.

  1. Uygulama Yapılandırma Hizmeti için bir yapılandırma deposu oluşturmak için aşağıdaki komutu kullanın:

    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. Uygulamaları Uygulama Yapılandırma Hizmeti'ne bağlamak için aşağıdaki komutları kullanın:

    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}
    

Hizmet kaydını ve bulmayı etkinleştirme

Etkin hizmet kaydı ve bulma için, uygulamaları Service Registry'ye bağlamak için aşağıdaki komutları kullanın:

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}

Tanzu Derleme Hizmeti ile çok teknolojili uygulamalar dağıtma

Uygulamaları dağıtmak ve derlemek için aşağıdaki adımları kullanın. Bu adımlar için herhangi bir komut çalıştırmadan önce terminalin proje klasöründe olduğundan emin olun.

  1. Tanzu Derleme Hizmeti'nde özel oluşturucu oluşturmak için aşağıdaki komutu kullanın:

    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. Ödeme hizmetini derlemek ve dağıtmak için aşağıdaki komutu kullanın:

    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. Katalog hizmetini derlemek ve dağıtmak için aşağıdaki komutu kullanın:

    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. Sipariş hizmetini derlemek ve dağıtmak için aşağıdaki komutu kullanın:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Sepet hizmetini derlemek ve dağıtmak için aşağıdaki komutu kullanın:

    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. Ön uç uygulamasını derlemek ve dağıtmak için aşağıdaki komutu kullanın:

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

İpucu

Sorunlu dağıtımlar için, uygulama her çalıştırılırken günlük akışını gerçek zamanlı olarak almak için aşağıdaki komutu kullanabilirsiniz: az spring app logs --name <app name> --follow.

Spring Cloud Gateway ile istekleri uygulamalara yönlendirme

Spring Cloud Gateway'i yapılandırmak ve uygulamalara giden yolları yapılandırmak için aşağıdaki adımları kullanın.

  1. Spring Cloud Gateway'e bir uç nokta atamak için aşağıdaki komutu kullanın:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Spring Cloud Gateway API bilgilerini yapılandırmak için aşağıdaki komutları kullanın:

    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. Sepet hizmeti için yollar oluşturmak için aşağıdaki komutu kullanın:

    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. Sipariş hizmeti için yollar oluşturmak için aşağıdaki komutu kullanın:

    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. Katalog hizmeti için yollar oluşturmak için aşağıdaki komutu kullanın:

    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. Ön uç için yollar oluşturmak için aşağıdaki komutu kullanın:

    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. Spring Cloud Gateway URL'sini almak için aşağıdaki komutları kullanın:

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

    Dağıtılan uygulamayı keşfetmek için çıkış URL'sini tarayıcıda açabilirsiniz.

API Portalı ile API'lere göz atma ve api'leri deneme

API Portalını yapılandırmak için aşağıdaki adımları kullanın.

  1. API Portalı'na bir uç nokta atamak için aşağıdaki komutu kullanın:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. API Portalı'nın URL'sini almak için aşağıdaki komutları kullanın:

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

    Uygulama API'lerini keşfetmek için çıkış URL'sini tarayıcıda açabilirsiniz.


Kaynakları temizleme

Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da kaynak grubundaki kaynakları siler. Azure CLI kullanarak kaynak grubunu silmek için aşağıdaki komutları kullanın:

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

Sonraki adımlar

Uygulamanızı başarıyla derleyip dağıttığınız için, aşağıdaki isteğe bağlı hızlı başlangıçlardan herhangi birine geçin: