Mulai cepat: Membangun dan menyebarkan aplikasi ke Azure Spring Apps menggunakan paket Enterprise

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:❌ Basic/Standard ✔️ Enterprise

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

Prasyarat

Mengunduh aplikasi sampel

Gunakan perintah berikut ini untuk mengunduh sampel:

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

Memprovisikan instans layanan

Gunakan langkah berikut ini untuk memprovisikan instans layanan Azure Spring Apps.

  1. Gunakan perintah berikut ini untuk masuk ke Azure CLI dan memilih 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 paket Enterprise. Langkah ini diperlukan hanya jika langganan Anda belum pernah digunakan untuk membuat instans paket Enterprise 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 paket Azure Spring Apps Enterprise. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Azure Spring Apps.

  4. Buat variabel untuk menahan nama sumber daya dengan menggunakan perintah berikut. Pastikan untuk mengganti placeholder dengan nilai Anda sendiri. Nama instans layanan Azure Spring Apps Anda harus panjangnya antara 4 dan 32 karakter dan hanya dapat berisi huruf kecil, angka, dan tanda hubung. Karakter pertama dari nama layanan harus berupa huruf dan karakter terakhir harus berupa huruf atau angka.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. Gunakan perintah berikut ini untuk membuat grup sumber daya:

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

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

  6. Gunakan perintah berikut ini untuk membuat instans layanan 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. Gunakan perintah berikut ini 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} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. Gunakan perintah berikut ini untuk mengambil ID Sumber Daya untuk Ruang Kerja Analitik Log dan instans layanan Azure Spring Apps Anda:

    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. Gunakan perintah berikut ini untuk mengonfigurasi pengaturan diagnostik untuk Layanan Azure Spring Apps:

    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. Gunakan perintah berikut ini untuk membuat aplikasi untuk cart-service, order-service, payment-service, catalog-service, dan 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}
    

Eksternalisasi konfigurasi menggunakan Layanan Konfigurasi Aplikasi

Gunakan langkah berikut ini untuk mengonfigurasi Application Configuration Service.

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

    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. Gunakan perintah berikut ini untuk mengikat aplikasi ke 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}
    

Mengaktifkan pendaftaran serta penemuan layanan

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

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}

Menyebarkan aplikasi poliglot menggunakan Tanzu Build Service

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

  1. Gunakan perintah berikut ini untuk membuat penyusun kustom di 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. Gunakan perintah berikut ini untuk membangun dan menyebarkan layanan pembayaran:

    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. Gunakan perintah berikut ini untuk membangun dan menyebarkan layanan katalog:

    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. Gunakan perintah berikut ini untuk membangun dan menyebarkan layanan pesanan:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. Gunakan perintah berikut ini untuk membangun dan menyebarkan layanan kelir:

    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. Gunakan perintah berikut ini untuk membangun dan menyebarkan aplikasi frontend:

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

Tip

Untuk memecahkan masalah penyebaran, Anda bisa 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 menggunakan Spring Cloud Gateway

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

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

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Gunakan perintah berikut ini untuk mengonfigurasi informasi API 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. Gunakan perintah berikut ini untuk membuat rute untuk layanan cart:

    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. Gunakan perintah berikut ini untuk membuat rute untuk layanan pesanan:

    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. Gunakan perintah berikut ini untuk membuat rute untuk layanan katalog:

    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. Gunakan perintah berikut ini untuk membuat rute untuk frontend:

    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. Gunakan perintah berikut ini untuk mengambil URL bagi 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}"
    

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

Telusuri serta coba API dengan Portal API

Gunakan langkah berikut ini untuk mengonfigurasi Portal API.

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

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. Gunakan perintah berikut ini untuk mengambil URL untuk Portal 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}"
    

    Anda bisa 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 serta menyebarkan aplikasi, lanjutkan ke salah satu mulai cepat opsional berikut: