Mulai cepat: Mem-build dan menyebarkan aplikasi ke Azure Spring Apps menggunakan tingkat Perusahaan

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk:❌ Tingkat Dasar/Standar ✔️ ️Tingkat Enterprise

Mulai cepat ini menunjukkan kepada Anda cara membuat dan menyebarkan aplikasi ke Azure Spring Apps menggunakan tingkat Enterprise.

Prasyarat

Mengunduh aplikasi sampel

Gunakan perintah berikut untuk mengunduh sampel:

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

Menyediakan instans layanan

Gunakan langkah-langkah berikut untuk menyediakan instans layanan Azure Spring Apps.

  1. Gunakan perintah berikut untuk masuk ke Azure CLI dan pilih langganan aktif Anda:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. Gunakan perintah berikut untuk menerima persyaratan hukum dan pernyataan privasi untuk tingkat Enterprise. Langkah ini diperlukan hanya jika langganan Anda belum pernah digunakan untuk membuat instans tingkat Enterprise dari 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. Pilih lokasi. Lokasi ini harus menjadi lokasi yang mendukung tingkat Azure Spring Apps Enterprise. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Azure Spring Apps.

  4. Gunakan perintah berikut ini untuk membuat grup sumber daya:

    az group create \
        --name <resource-group-name> \
        --location <location>
    

    Untuk mengetahui informasi lengkap tentang grup sumber daya, lihat Apa itu Azure Resource Manager?.

  5. Siapkan nama untuk instans layanan Aplikasi Azure Spring Anda. Nama harus antara 4 hingga 32 karakter dan hanya boleh berisi huruf kecil, angka, dan tanda hubung. Karakter pertama dari nama layanan harus berupa huruf dan karakter terakhir harus berupa huruf atau angka.

  6. Gunakan perintah berikut untuk membuat instans layanan Azure Spring Apps:

    az spring create \
        --resource-group <resource-group-name> \
        --name <Azure-Spring-Apps-service-instance-name> \
        --sku enterprise \
        --enable-application-configuration-service \
        --enable-service-registry \
        --enable-gateway \
        --enable-api-portal
    
  7. Gunakan perintah berikut untuk membuat Ruang Kerja Analitik Log yang akan digunakan untuk layanan Azure Spring Apps Anda:

    az monitor log-analytics workspace create \
        --resource-group <resource-group-name> \
        --workspace-name <workspace-name> \
        --location <location>
    
  8. Gunakan perintah berikut untuk mengambil ID Sumber Daya untuk Ruang Kerja Analitik Log dan instans layanan Azure Spring Apps Anda:

    LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \
        --resource-group <resource-group-name> \
        --workspace-name <workspace-name> | jq -r '.id')
    
    SPRING_CLOUD_RESOURCE_ID=$(az spring show \
        --resource-group <resource-group-name> \
        --name <Azure-Spring-Apps-service-instance-name> | jq -r '.id')
    
  9. Gunakan perintah berikut untuk mengonfigurasi pengaturan diagnostik untuk Layanan Azure Spring Apps:

    az monitor diagnostic-settings create \
        --name "send-logs-and-metrics-to-log-analytics" \
        --resource ${SPRING_CLOUD_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. Gunakan perintah berikut untuk membuat aplikasi untuk cart-service, , order-service, payment-servicecatalog-service, dan frontend:

    az spring app create \
        --resource-group <resource-group-name> \
        --name cart-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
    az spring app create \
        --resource-group <resource-group-name> \
        --name order-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
    az spring app create \
        --resource-group <resource-group-name> \
        --name payment-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
    az spring app create \
        --resource-group <resource-group-name> \
        --name catalog-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
    az spring app create \
        --resource-group <resource-group-name> \
        --name frontend \
        --service <Azure-Spring-Apps-service-instance-name>
    

Eksternalisasi konfigurasi dengan Layanan Konfigurasi Aplikasi

Gunakan langkah-langkah berikut untuk mengonfigurasi Application Configuration Service.

  1. Gunakan perintah berikut untuk membuat repositori konfigurasi untuk Layanan Konfigurasi Aplikasi:

    az spring application-configuration-service git repo add \
        --resource-group <resource-group-name> \
        --name acme-fitness-store-config \
        --service <Azure-Spring-Apps-service-instance-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. Gunakan perintah berikut untuk mengikat aplikasi ke Application Configuration Service:

    az spring application-configuration-service bind \
        --resource-group <resource-group-name> \
        --app payment-service \
        --service <Azure-Spring-Apps-service-instance-name>
    
    az spring application-configuration-service bind \
        --resource-group <resource-group-name> \
        --app catalog-service \
        --service <Azure-Spring-Apps-service-instance-name>
    

Mengaktifkan pendaftaran dan penemuan layanan

Untuk pendaftaran dan penemuan layanan aktif, gunakan perintah berikut untuk mengikat aplikasi ke Service Registry:

az spring service-registry bind \
    --resource-group <resource-group-name> \
    --app payment-service \
    --service <Azure-Spring-Apps-service-instance-name>

az spring service-registry bind \
    --resource-group <resource-group-name> \
    --app catalog-service \
    --service <Azure-Spring-Apps-service-instance-name>

Menyebarkan aplikasi poliglot dengan Tanzu Build Service

Gunakan langkah-langkah berikut untuk menyebarkan dan membangun aplikasi. Untuk langkah-langkah ini, pastikan terminal berada di folder proyek sebelum menjalankan perintah apa pun.

  1. Gunakan perintah berikut untuk membuat penyusun kustom di Tanzu Build Service:

    az spring build-service builder create \
        --resource-group <resource-group-name> \
        --name quickstart-builder \
        --service <Azure-Spring-Apps-service-instance-name> \
        --builder-file azure/builder.json
    
  2. Gunakan perintah berikut untuk membangun dan menyebarkan layanan pembayaran:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --name payment-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --config-file-pattern payment/default \
        --source-path apps/acme-payment
    
  3. Gunakan perintah berikut untuk membangun dan menyebarkan layanan katalog:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --name catalog-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --config-file-pattern catalog/default \
        --source-path apps/acme-catalog
    
  4. Gunakan perintah berikut untuk membangun dan menyebarkan layanan pesanan:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --name order-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Gunakan perintah berikut untuk membangun dan menyebarkan layanan kelir:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --name cart-service \
        --service <Azure-Spring-Apps-service-instance-name> \
        --builder quickstart-builder \
        --env "CART_PORT=8080" \
        --source-path apps/acme-cart
    
  6. Gunakan perintah berikut untuk membangun dan menyebarkan aplikasi frontend:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --name frontend \
        --service <Azure-Spring-Apps-service-instance-name> \
        --source-path apps/acme-shopping
    

Tip

Untuk memecahkan masalah penyebaran, Anda dapat menggunakan perintah berikut untuk mendapatkan streaming log secara real time setiap kali aplikasi berjalan: az spring app logs --name <app name> --follow.

Merutekan permintaan ke aplikasi dengan Spring Cloud Gateway

Gunakan langkah-langkah berikut untuk mengonfigurasi Spring Cloud Gateway dan mengonfigurasi rute ke aplikasi.

  1. Gunakan perintah berikut untuk menetapkan titik akhir ke Spring Cloud Gateway:

    az spring gateway update \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> \
        --assign-endpoint true
    
  2. Gunakan perintah berikut untuk mengonfigurasi informasi API Spring Cloud Gateway:

    GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    az spring gateway update \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> \
        --api-description "Fitness Store API" \
        --api-title "Fitness Store" \
        --api-version "v1.0" \
        --server-url "https://${GATEWAY_URL}" \
        --allowed-origins "*"
    
  3. Gunakan perintah berikut untuk membuat rute untuk layanan keliru:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --name cart-routes \
        --service <Azure-Spring-Apps-service-instance-name> \
        --app-name cart-service \
        --routes-file azure/routes/cart-service.json
    
  4. Gunakan perintah berikut untuk membuat rute untuk layanan pesanan:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --name order-routes \
        --service <Azure-Spring-Apps-service-instance-name> \
        --app-name order-service \
        --routes-file azure/routes/order-service.json
    
  5. Gunakan perintah berikut untuk membuat rute untuk layanan katalog:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --name catalog-routes \
        --service <Azure-Spring-Apps-service-instance-name> \
        --app-name catalog-service \
        --routes-file azure/routes/catalog-service.json
    
  6. Gunakan perintah berikut untuk membuat rute untuk frontend:

    az spring gateway route-config create \
        --resource-group <resource-group-name> \
        --name frontend-routes \
        --service <Azure-Spring-Apps-service-instance-name> \
        --app-name frontend \
        --routes-file azure/routes/frontend.json
    
  7. Gunakan perintah berikut untuk mengambil URL untuk Spring Cloud Gateway:

    GATEWAY_URL=$(az spring gateway show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    echo "https://${GATEWAY_URL}"
    

    Anda dapat membuka URL output di browser untuk menjelajahi aplikasi yang disebarkan.

Telusuri dan coba API dengan Portal API

Gunakan langkah-langkah berikut untuk mengonfigurasi Portal API.

  1. Gunakan perintah berikut untuk menetapkan titik akhir ke Portal API:

    az spring api-portal update \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> \
        --assign-endpoint true
    
  2. Gunakan perintah berikut untuk mengambil URL untuk Portal API:

    PORTAL_URL=$(az spring api-portal show \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
    
    echo "https://${PORTAL_URL}"
    

    Anda dapat membuka URL output di browser untuk menjelajahi API aplikasi.


Membersihkan sumber daya

Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, biarkan sumber daya ini tetap di tempatnya. Jika tidak lagi diperlukan, hapus grup sumber daya, yang juga akan menghapus sumber daya di grup sumber daya. Untuk menghapus grup sumber daya dengan menggunakan Azure CLI, gunakan perintah berikut:

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

Langkah berikutnya

Setelah berhasil membuat dan menyebarkan aplikasi, lanjutkan ke salah satu mulai cepat opsional berikut: