Bagikan melalui


Tutorial: Koneksi ke Server Konfigurasi terkelola untuk Spring di Azure Container Apps (pratinjau)

Config Server for Spring menyediakan lokasi terpusat untuk membuat data konfigurasi tersedia untuk beberapa aplikasi. Dalam artikel ini, Anda belajar menyambungkan aplikasi yang dihosting di Azure Container Apps ke Java Config Server untuk instans Spring.

Komponen Config Server for Spring menggunakan repositori GitHub sebagai sumber untuk pengaturan konfigurasi. Nilai konfigurasi tersedia untuk aplikasi kontainer Anda melalui pengikatan antara komponen dan aplikasi kontainer Anda. Saat nilai berubah di server konfigurasi, nilai tersebut secara otomatis mengalir ke aplikasi Anda, semuanya tanpa mengharuskan Anda untuk mengkombinasi ulang atau menyebarkan ulang aplikasi Anda.

Dalam tutorial ini, Anda mempelajari caranya:

  • Membuat Config Server untuk komponen Spring Java
  • Mengikat Server Konfigurasi untuk Spring ke aplikasi kontainer Anda
  • Amati nilai konfigurasi sebelum dan sesudah menyambungkan server konfigurasi ke aplikasi Anda
  • Mengenkripsi dan mendekripsi nilai konfigurasi dengan kunci konten

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 Config Server for Spring di Azure Container Apps, ketahui detail berikut:

Item Penjelasan
Cakupan Server Konfigurasi untuk Spring berjalan di lingkungan yang sama dengan aplikasi kontainer yang terhubung.
Penskalaan Untuk mempertahankan satu sumber kebenaran, Server Konfigurasi untuk Spring tidak menskalakan. Properti minReplicas penskalakan dan maxReplicas keduanya diatur ke 1.
Sumber Alokasi sumber daya kontainer untuk Config Server for Spring diperbaiki, jumlah inti CPU adalah 0,5, dan ukuran memorinya adalah 1Gi.
Harga Config 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 Server Konfigurasi untuk Spring melalui pengikatan. Pengikatan menyuntikkan konfigurasi ke dalam variabel lingkungan aplikasi kontainer. Setelah pengikatan dibuat, aplikasi kontainer dapat membaca nilai konfigurasi dari variabel lingkungan.

Siapkan

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

Jalankan perintah berikut untuk membuat grup sumber daya dan lingkungan Container Apps 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-spring-cloud-resource-group
    export ENVIRONMENT=my-spring-cloud-environment
    export JAVA_COMPONENT_NAME=myconfigserver
    export APP_NAME=my-config-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-config-client:latest"
    export URI="https://github.com/Azure-Samples/azure-spring-cloud-config-java-aca.git"
    
    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.
    JAVA_COMPONENT_NAME Nama komponen Java yang dibuat untuk aplikasi kontainer Anda. Dalam hal ini, Anda membuat komponen Config Server for Spring Java.
    IMAGE Gambar kontainer yang digunakan di aplikasi kontainer Anda.
    URI Anda dapat mengganti URI dengan url repositori git Anda, jika bersifat privat, tambahkan konfigurasi autentikasi terkait seperti spring.cloud.config.server.git.username dan spring.cloud.config.server.git.password.
  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
    

    Lingkungan ini digunakan untuk menghosting komponen Config Server for Spring dan aplikasi kontainer Anda.

Menggunakan komponen Config Server for Spring Java

Setelah memiliki lingkungan Container Apps, Anda dapat membuat aplikasi kontainer dan mengikatnya ke komponen Config Server for Spring. Saat Anda mengikat aplikasi kontainer, nilai konfigurasi secara otomatis disinkronkan dari komponen Config Server ke aplikasi Anda.

  1. Buat komponen Config Server for Spring Java.

    az containerapp env java-component config-server-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --configuration spring.cloud.config.server.git.uri=$URI
    
  2. Perbarui komponen Config Server for Spring Java.

    az containerapp env java-component config-server-for-spring update \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --configuration spring.cloud.config.server.git.uri=$URI spring.cloud.config.server.git.refresh-rate=60
    

    Di sini, Anda memberi tahu komponen tempat menemukan repositori yang menyimpan informasi konfigurasi Anda melalui uri properti . Properti memberi refresh-rate tahu Aplikasi Kontainer seberapa sering memeriksa perubahan di repositori git Anda.

  3. Buat aplikasi kontainer yang menggunakan data konfigurasi.

    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 \
      --query properties.configuration.ingress.fqdn
    

    Perintah ini mengembalikan URL aplikasi kontainer Anda yang menggunakan data konfigurasi. Salin URL ke editor teks sehingga Anda dapat menggunakannya dalam langkah mendatang.

    Jika Anda mengunjungi aplikasi di browser, nilai yang connectTimeout dikembalikan adalah nilai default .0

  4. Ikat ke Server Konfigurasi untuk Spring.

    Setelah aplikasi kontainer dan Config Server dibuat, Anda mengikatnya bersama dengan update perintah ke aplikasi kontainer Anda.

    az containerapp update \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --bind $JAVA_COMPONENT_NAME
    

    Parameter --bind $JAVA_COMPONENT_NAME membuat tautan antara aplikasi kontainer Anda dan komponen konfigurasi.

    Setelah aplikasi kontainer dan komponen Config Server terikat bersama, perubahan konfigurasi secara otomatis disinkronkan ke aplikasi kontainer.

    Saat Anda mengunjungi URL aplikasi lagi, nilainya connectTimeout sekarang 10000. Nilai ini berasal dari repositori git yang ditetapkan dalam variabel yang $URI awalnya ditetapkan sebagai sumber komponen konfigurasi. Secara khusus, nilai ini diambil dari connectionTimeout properti dalam file application.yml repositori.

    Permintaan pengikatan menyuntikkan pengaturan konfigurasi ke dalam aplikasi sebagai variabel lingkungan. Nilai-nilai ini sekarang tersedia untuk kode aplikasi yang akan digunakan saat mengambil pengaturan konfigurasi dari server konfigurasi.

    Dalam hal ini, variabel lingkungan berikut tersedia untuk aplikasi:

    SPRING_CLOUD_CONFIG_URI=http://$JAVA_COMPONENT_NAME:80
    SPRING_CLOUD_CONFIG_COMPONENT_URI=http://$JAVA_COMPONENT_NAME:80
    SPRING_CONFIG_IMPORT=optional:configserver:$SPRING_CLOUD_CONFIG_URI
    

    Jika Anda ingin menyesuaikan sendiri SPRING_CONFIG_IMPORT, Anda dapat merujuk ke variabel SPRING_CLOUD_CONFIG_COMPONENT_URIlingkungan , misalnya, Anda dapat mengambil alih berdasarkan argumen baris perintah, seperti Java -Dspring.config.import=optional:configserver:${SPRING_CLOUD_CONFIG_COMPONENT_URI}?fail-fast=true.

    Anda juga dapat menghapus pengikatan dari aplikasi Anda.

  5. Batalkan ikatan komponen Config Server for Spring Java.

    Untuk menghapus pengikatan dari aplikasi kontainer, gunakan --unbind opsi .

    az containerapp update \
      --name $APP_NAME \
      --unbind $JAVA_COMPONENT_NAME \
      --resource-group $RESOURCE_GROUP
    

    Saat Anda mengunjungi URL aplikasi lagi, nilai connectTimeout perubahan menjadi kembali ke 0.

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