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.
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
danspring.cloud.config.server.git.password
.Masuk ke Azure dengan Azure CLI.
az login
Buat grup sumber daya.
az group create --name $RESOURCE_GROUP --location $LOCATION
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.
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
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 memberirefresh-rate
tahu Aplikasi Kontainer seberapa sering memeriksa perubahan di repositori git Anda.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
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
sekarang10000
. Nilai ini berasal dari repositori git yang ditetapkan dalam variabel yang$URI
awalnya ditetapkan sebagai sumber komponen konfigurasi. Secara khusus, nilai ini diambil dariconnectionTimeout
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 variabelSPRING_CLOUD_CONFIG_COMPONENT_URI
lingkungan , misalnya, Anda dapat mengambil alih berdasarkan argumen baris perintah, sepertiJava -Dspring.config.import=optional:configserver:${SPRING_CLOUD_CONFIG_COMPONENT_URI}?fail-fast=true
.Anda juga dapat menghapus pengikatan dari aplikasi Anda.
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 ke0
.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk