Bagikan melalui


Tutorial: Menyambungkan ke Eureka Server for Spring terkelola di Azure Container Apps (pratinjau)

Eureka Server for Spring adalah registri layanan yang memungkinkan layanan mikro mendaftarkan diri mereka dan menemukan layanan lain. Tersedia sebagai komponen Azure Container Apps, Anda dapat mengikat aplikasi kontainer Anda ke Eureka Server for Spring untuk pendaftaran otomatis dengan server Eureka.

Dalam tutorial ini, Anda mempelajari caranya:

  • Membuat komponen Eureka Server for Spring Java
  • Mengikat aplikasi kontainer Anda ke Eureka Server untuk komponen Spring Java

Penting

Tutorial ini menggunakan layanan yang dapat memengaruhi tagihan Azure Anda. Jika Anda memutuskan untuk mengikuti langkah demi langkah, pastikan Anda menghapus sumber daya yang ditampilkan dalam artikel ini untuk menghindari penagihan yang tidak terduga.

Prasyarat

Untuk menyelesaikan proyek ini, Anda memerlukan item berikut:

Persyaratan Petunjuk
Akun Azure Langganan aktif diperlukan. Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis.
Azure CLI Instal Azure CLI.

Pertimbangan

Saat berjalan di Eureka Server for Spring di Azure Container Apps, ketahui detail berikut:

Item Penjelasan
Cakupan Komponen Eureka Server for Spring berjalan di lingkungan yang sama dengan aplikasi kontainer yang terhubung.
Penskalaan Server Eureka untuk Spring tidak dapat menskalakan. Properti minReplicas penskalakan dan maxReplicas keduanya diatur ke 1.
Sumber Alokasi sumber daya kontainer untuk Eureka Server untuk Spring diperbaiki. Jumlah inti CPU adalah 0,5, dan ukuran memorinya adalah 1Gi.
Harga Eureka Server untuk penagihan Spring berada di bawah harga berbasis konsumsi. Sumber daya yang digunakan oleh komponen Java terkelola ditagih dengan tarif aktif/diam. Anda dapat menghapus komponen yang tidak lagi digunakan untuk menghentikan penagihan.
Pengikatan Aplikasi kontainer terhubung ke komponen Eureka Server for Spring 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 Server Eureka untuk Spring.

Siapkan

Sebelum Anda mulai bekerja dengan Eureka Server untuk Spring, Anda harus terlebih dahulu membuat sumber daya yang diperlukan.

Jalankan perintah berikut untuk membuat grup sumber daya, lingkungan aplikasi kontainer Anda.

  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 APP_NAME=sample-service-eureka-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"
    
    Variabel Deskripsi
    LOCATION Lokasi wilayah Azure tempat Anda membuat aplikasi kontainer dan komponen Java.
    ENVIRONMENT Nama lingkungan Azure Container Apps untuk aplikasi demo Anda.
    RESOURCE_GROUP Nama grup sumber daya Azure untuk aplikasi demo Anda.
    EUREKA_COMPONENT_NAME Nama komponen Java yang dibuat untuk aplikasi kontainer Anda. Dalam hal ini, Anda membuat komponen Eureka Server for Spring Java.
    IMAGE Gambar kontainer yang digunakan di aplikasi kontainer 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
    

Membuat komponen Eureka Server for Spring Java

Setelah memiliki lingkungan yang ada, Anda dapat membuat aplikasi kontainer dan mengikatnya ke instans komponen Java Eureka Server untuk Spring.

  1. Buat komponen Eureka Server for Spring Java.

    az containerapp env java-component eureka-server-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $EUREKA_COMPONENT_NAME
    
  2. Opsional: Perbarui konfigurasi komponen Eureka Server for Spring Java.

    az containerapp env java-component eureka-server-for-spring update \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $EUREKA_COMPONENT_NAME 
      --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
    

Mengikat aplikasi kontainer Anda ke komponen Eureka Server for Spring Java

  1. Buat aplikasi kontainer dan ikat ke Server Eureka untuk Spring.

    az containerapp create \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT \
      --image $IMAGE \
      --min-replicas 1 \
      --max-replicas 1 \
      --ingress external \
      --target-port 8080 \
      --bind $EUREKA_COMPONENT_NAME \
      --query properties.configuration.ingress.fqdn
    

    Perintah ini mengembalikan URL aplikasi kontainer Anda yang menggunakan register dengan komponen server Eureka. Salin URL ke editor teks sehingga Anda dapat menggunakannya dalam langkah mendatang.

    Navigasi atas /allRegistrationStatus tampilan rute semua aplikasi yang terdaftar di Eureka Server untuk Spring.

    Pengikatan menyuntikkan beberapa konfigurasi ke dalam aplikasi sebagai variabel lingkungan, terutama eureka.client.service-url.defaultZone properti . Properti ini menunjukkan titik akhir internal komponen Eureka Server Java.

    Pengikatan juga menyuntikkan properti berikut:

    "eureka.client.register-with-eureka":    "true"
    "eureka.instance.prefer-ip-address":     "true"
    

    eureka.client.register-with-eureka Properti diatur ke true untuk memberlakukan pendaftaran dengan server Eureka. Pendaftaran ini menimpa pengaturan lokal di application.properties, dari server konfigurasi dan sebagainya. Jika Anda ingin mengaturnya ke false, Anda dapat menimpanya dengan mengatur variabel lingkungan di aplikasi kontainer Anda.

    eureka.instance.prefer-ip-address diatur ke true karena aturan resolusi DNS tertentu di lingkungan aplikasi kontainer. Jangan ubah nilai ini agar Anda tidak memutus pengikatan.

    Anda juga dapat menghapus pengikatan dari aplikasi Anda.

Menampilkan aplikasi melalui 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": "<YOUR_ROLE_NAME>",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Pastikan untuk mengganti tempat penampung di antara tanda <> kurung 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 -o tsv)
    
  3. Tetapkan peran ke akun Anda.

    Sebelum menjalankan perintah ini, ganti tempat penampung di antara tanda <> kurung dengan ID pengguna atau perwakilan layanan Anda.

    az role assignment create \
      --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
      --role "<ROLE_NAME>" \
      --scope $ENVIRONMENT_ID
    

    Catatan

    <> USER_OR_SERVICE_PRINCIPAL_ID biasanya harus menjadi identitas yang Anda gunakan untuk mengakses Portal Microsoft Azure. <> ROLE_NAME adalah nama yang Anda tetapkan di langkah 1.

  4. 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 -o 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 Eureka Server for Spring.

Opsional: Mengintegrasikan Server Eureka untuk Spring dan Admin untuk komponen Spring Java

Jika Anda ingin mengintegrasikan Server Eureka untuk Spring dan Admin untuk komponen Spring Java, lihat Mengintegrasikan Admin terkelola untuk Spring dengan Eureka Server untuk 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

Langkah berikutnya