Bagikan melalui


Tutorial: Mengintegrasikan Admin untuk Spring dengan Eureka Server untuk Spring di Azure Container Apps

Tutorial ini memandu Anda melalui proses mengintegrasikan Admin terkelola untuk Spring dengan Eureka Server for Spring dalam Azure Container Apps.

Artikel ini berisi beberapa konten yang mirip dengan tutorial "Sambungkan ke Admin terkelola untuk Spring di Azure Container Apps", tetapi dengan Eureka Server untuk Spring, Anda dapat mengikat Admin untuk Spring ke Eureka Server untuk Spring, sehingga bisa mendapatkan informasi aplikasi melalui Eureka, alih-alih harus mengikat aplikasi individual ke Admin untuk Spring.

Dengan mengikuti panduan ini, Anda menyiapkan Eureka Server untuk penemuan layanan lalu membuat Admin untuk Spring untuk mengelola dan memantau aplikasi Spring Anda yang terdaftar di Eureka Server. Penyiapan ini memastikan bahwa aplikasi lain hanya perlu mengikat Eureka Server, menyederhanakan manajemen layanan mikro Anda.

Dalam tutorial ini, Anda mempelajari caranya:

  1. Buat Eureka Server untuk Spring.
  2. Buat Admin untuk Spring dan tautkan ke Eureka Server.
  3. Ikat aplikasi lain ke Eureka Server untuk penemuan dan manajemen layanan yang disederhanakan.

Prasyarat

Pertimbangan

Saat menjalankan komponen Java terkelola di Azure Container Apps, ketahui detail berikut:

Item Penjelasan
Cakupan Komponen berjalan di lingkungan yang sama dengan aplikasi kontainer yang terhubung.
Penskalaan Komponen tidak dapat menskalakan. Properti minReplicas penskalakan dan maxReplicas keduanya diatur ke 1.
Sumber Alokasi sumber daya kontainer untuk komponen diperbaiki. Jumlah inti CPU adalah 0,5, dan ukuran memorinya adalah 1 Gi.
Harga Penagihan komponen berada di bawah harga berbasis konsumsi. Sumber daya yang digunakan oleh komponen terkelola ditagih dengan tarif aktif/diam. Anda dapat menghapus komponen yang tidak lagi digunakan untuk menghentikan penagihan.
Pengikatan Aplikasi kontainer terhubung ke komponen melalui pengikatan. Pengikatan menyuntikkan konfigurasi ke dalam variabel lingkungan aplikasi kontainer. Setelah pengikatan dibuat, aplikasi kontainer dapat membaca nilai konfigurasi dari variabel lingkungan dan terhubung ke komponen.

Siapkan

Sebelum memulai, buat sumber daya yang diperlukan dengan menjalankan perintah berikut.

  1. Buat variabel untuk mendukung konfigurasi aplikasi Anda. Nilai-nilai ini disediakan untuk Anda untuk tujuan pelajaran ini.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_NAME=eureka
    export ADMIN_COMPONENT_NAME=admin
    export CLIENT_APP_NAME=sample-service-eureka-client
    export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
    
    Variabel Deskripsi
    LOCATION Lokasi wilayah Azure tempat Anda membuat aplikasi kontainer dan komponen Java.
    RESOURCE_GROUP Nama grup sumber daya Azure untuk aplikasi demo Anda.
    ENVIRONMENT Nama lingkungan Azure Container Apps untuk aplikasi demo Anda.
    EUREKA_COMPONENT_NAME Nama komponen Eureka Server Java.
    ADMIN_COMPONENT_NAME Nama admin untuk komponen Spring Java.
    CLIENT_APP_NAME Nama aplikasi kontainer yang mengikat Eureka Server.
    CLIENT_IMAGE Gambar kontainer yang digunakan di aplikasi kontainer Eureka Server Anda.
  2. Masuk ke Azure dengan Azure CLI.

    az login
    
  3. Buat grup sumber daya.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Buat lingkungan aplikasi kontainer Anda.

    az containerapp env create \
        --name $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --query "properties.provisioningState"
    

    --query Menggunakan parameter memfilter respons ke pesan keberhasilan atau kegagalan sederhana.

Opsional: Membuat Server Eureka untuk Spring

Jika Anda tidak memiliki Eureka Server untuk Spring, ikuti perintah di bawah ini untuk membuat komponen Eureka Server Java. Untuk informasi selengkapnya, lihat Membuat Server Eureka untuk Spring.

az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_NAME

Mengikat komponen bersama-sama

Buat komponen Admin untuk Spring Java.

az containerapp env java-component admin-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $ADMIN_COMPONENT_NAME \
    --min-replicas 1 \
    --max-replicas 1 \
    --bind $EUREKA_COMPONENT_NAME

Mengikat aplikasi lain ke Eureka Server

Dengan pengaturan Eureka Server, Anda sekarang dapat mengikat aplikasi lain untuk penemuan layanan. Dan Anda juga dapat memantau dan mengelola aplikasi ini di dasbor Admin untuk Spring. Gunakan langkah-langkah berikut untuk membuat dan mengikat aplikasi kontainer ke Eureka Server:

Buat aplikasi kontainer dan ikat ke Eureka Server.

az containerapp create \
    --name $CLIENT_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --environment $ENVIRONMENT \
    --image $CLIENT_IMAGE \
    --min-replicas 1 \
    --max-replicas 1 \
    --ingress external \
    --target-port 8080 \
    --bind $EUREKA_COMPONENT_NAME 

Tip

Karena langkah-langkah sebelumnya mengikat komponen Admin untuk Spring ke komponen Eureka Server for Spring, komponen Admin memungkinkan penemuan layanan dan memungkinkan Anda mengelolanya melalui dasbor Admin untuk Spring secara bersamaan.

Menampilkan dasbor

Penting

Untuk melihat dasbor, Anda harus memiliki setidaknya peran yang Microsoft.App/managedEnvironments/write ditetapkan ke akun Anda pada sumber daya lingkungan terkelola. Anda dapat secara eksplisit menetapkan Owner atau Contributor peran pada sumber daya atau mengikuti langkah-langkah untuk membuat definisi peran kustom dan menetapkannya ke akun Anda.

  1. Buat definisi peran kustom.

    az role definition create --role-definition '{
        "Name": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Pastikan untuk mengganti <SUBSCRIPTION_ID> tempat penampung dalam AssignableScopes nilai dengan ID langganan Anda.

  2. Tetapkan peran kustom ke akun Anda di sumber daya lingkungan terkelola.

    Dapatkan ID sumber daya lingkungan terkelola.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. Tetapkan peran ke akun Anda.

    Sebelum menjalankan perintah ini, ganti <USER_OR_SERVICE_PRINCIPAL_ID> tempat penampung dengan ID pengguna atau perwakilan layanan Anda.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  4. Dapatkan URL dasbor Admin untuk Spring.

    az containerapp env java-component admin-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    
  5. Dapatkan URL dasbor Eureka Server for Spring.

    az containerapp env java-component eureka-server-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    

    Perintah ini mengembalikan URL yang dapat Anda gunakan untuk mengakses dasbor Eureka Server for Spring. Melalui dasbor, aplikasi kontainer Anda juga ditunjukkan pada cuplikan layar berikut.

    Cuplikan layar dasbor Admin untuk Spring.

    Cuplikan layar dasbor Eureka Server for Spring.

Membersihkan sumber daya

Sumber daya yang dibuat dalam tutorial ini berpengaruh pada tagihan Azure Anda. Jika Anda tidak akan menggunakan layanan ini dalam jangka panjang, jalankan perintah berikut untuk menghapus semua yang dibuat dalam tutorial ini.

az group delete --resource-group $RESOURCE_GROUP