Tutorial: Gunakan konfigurasi dinamis menggunakan refresh pendorongan di aplikasi Java Spring
Pustaka klien Java Spring App Configuration mendukung pembaruan konfigurasi sesuai permintaan tanpa menyebabkan aplikasi dihidupkan ulang. Aplikasi dapat dikonfigurasikan untuk mendeteksi perubahan di App Configuration menggunakan salah satu atau kedua pendekatan berikut.
Model Polling: Ini adalah perilaku default yang menggunakan polling untuk mendeteksi perubahan konfigurasi. Setelah nilai cache pengaturan kedaluwarsa, panggilan berikutnya ke
AppConfigurationRefresh
ataurefreshConfigurations
mengirim permintaan ke server untuk memeriksa apakah konfigurasi telah berubah, dan menarik konfigurasi yang diperbarui jika diperlukan.Model Pendorongan: Ini menggunakan peristiwa App Configuration untuk mendeteksi perubahan konfigurasi. Setelah App Configuration disiapkan untuk mengirim peristiwa perubahan nilai kunci ke Azure Event Grid, dengan Webhook, aplikasi dapat menggunakan peristiwa ini untuk mengoptimalkan jumlah total permintaan yang diperlukan untuk menjaga konfigurasi tetap terbarukan.
Tutorial ini menunjukkan bagaimana Anda dapat menerapkan pembaruan konfigurasi dinamis dalam kode Anda menggunakan refresh pendorongan. Tutorial ini dibangun pada aplikasi web yang diperkenalkan di mulai cepat. Sebelum melanjutkan, selesaikan Membuat aplikasi Java Spring dengan Azure App Configuration terlebih dahulu.
Anda dapat menggunakan penyunting kode apa pun untuk melakukan langkah-langkah dalam tutorial ini. Visual Studio Code adalah opsi luar biasa yang tersedia di platform Windows, macOS, dan Linux.
Dalam tutorial ini, Anda akan mempelajari cara:
- Menyiapkan langganan untuk mengirim peristiwa perubahan konfigurasi dari Azure App Configuration ke Webhook
- Menyebarkan aplikasi Spring Boot ke App Service
- Siapkan aplikasi Java Spring Anda untuk memperbarui konfigurasinya sebagai respons terhadap perubahan pada App Configuration.
- Konsumsi konfigurasi terbaru di aplikasi Anda.
Prasyarat
- Langganan Azure - buat akun secara gratis
- Java Development Kit (JDK) yang didukung dengan versi 11.
- Apache Maven versi 3.0 atau lebih tinggi.
- Membuat Penyimpanan Azure App Configuration.
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Penyetelan Push Refresh
Buka pom.xml dan perbarui file dengan dependensi berikut.
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId> </dependency> <!-- Adds the Ability to Push Refresh --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.8.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Siapkan Penyebaran App Service Maven, sehingga aplikasi dapat disebarkan ke Azure App Service melalui Maven.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.5.0:config
Buka bootstrap.properties dan konfigurasikan Azure App Configuration Push Refresh.
# Azure App Configuration Properties spring.cloud.azure.appconfiguration.stores[0].connection-string= ${AppConfigurationConnectionString} spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled= true spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30d spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key= sentinel spring.cloud.azure.appconfiguration.stores[0].monitoring.push-notification.primary-token.name= myToken spring.cloud.azure.appconfiguration.stores[0].monitoring.push-notification.primary-token.secret= myTokenSecret management.endpoints.web.exposure.include= appconfiguration-refresh
Penundaan acak ditambahkan sebelum nilai cache ditandai sebagai kotor untuk mengurangi potensi pembatasan. Penundaan maksimum default sebelum nilai yang ditembolok ditandai sebagai kotor adalah 30 detik.
Catatan
Nama token Utama harus disimpan dalam App Configuration sebagai kunci, dan kemudian rahasia token Utama harus disimpan sebagai Referensi Vault Kunci App Configuration untuk keamanan tambahan.
Membangun dan menjalankan aplikasi di layanan aplikasi
Event Grid Web Hooks memerlukan validasi pada pembuatan. Anda dapat memvalidasi dengan mengikuti panduan ini atau dengan memulai aplikasi Anda dengan Azure App Configuration Spring Web Library yang sudah dikonfigurasi, yang akan mendaftarkan aplikasi Anda. Untuk menggunakan langganan peristiwa, ikuti langkah-langkah di dua bagian berikutnya.
Atur variabel lingkungan ke string koneksi instans App Configuration Anda:
setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>
Perbarui
pom.xml
Anda pada tambahkanconfiguration
azure-webapp-maven-plugin
<appSettings> <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString> </appSettings>
Jalankan perintah berikut untuk membuat aplikasi konsol:
mvn package
Setelah pembangunan berhasil diselesaikan, jalankan perintah berikut untuk menjalankan aplikasi secara lokal:
mvn azure-webapp:deploy
Menyiapkan langganan peristiwa
Buka sumber daya App Configuration di portal Azure, lalu klik
+ Event Subscription
di panelEvents
.Masukkan nama untuk
Event Subscription
danSystem Topic
. Secara default, Nilai-Kunci Tipe Peristiwa dimodifikasi dan Nilai-Kunci yang dihapus diatur, ini dapat diubah bersama dengan menggunakan tab Filter untuk memilih alasan pasti untuk pengiriman Peristiwa Push.Pilih
Endpoint Type
sebagaiWeb Hook
, pilihSelect an endpoint
.Titik akhir adalah URI aplikasi + "/aktuator/appconfiguration-refresh? {nama-token-Anda}={your-token-secret}". Misalnya
https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecret
Klik
Create
untuk membuat langganan acara. KetikaCreate
dipilih permintaan pendaftaran untuk Web Hook akan dikirim ke aplikasi Anda. Permintaan ini diterima oleh pustaka klien Azure App Configuration diverifikasi, dan mengembalikan respons yang valid.Klik
Event Subscriptions
di panelEvents
untuk memvalidasi bahwa langganan berhasil dibuat.
Catatan
Saat berlangganan perubahan konfigurasi, satu atau beberapa filter dapat digunakan untuk mengurangi jumlah peristiwa yang dikirim ke aplikasi Anda. Ini dapat dikonfigurasi baik sebagai filter langganan Event Grid. Misalnya, filter langganan hanya dapat digunakan untuk berlangganan peristiwa untuk perubahan dalam kunci yang dimulai dengan untai (karakter) tertentu.
Catatan
Jika Anda memiliki beberapa instans aplikasi yang berjalan, Anda dapat menggunakan appconfiguration-refresh-bus
titik akhir yang memerlukan penyiapan Azure Bus Layanan, yang digunakan untuk mengirim pesan ke semua instans aplikasi Anda untuk merefresh konfigurasinya. Ini berguna jika Anda memiliki beberapa instans aplikasi yang berjalan dan ingin memastikan bahwa semua instans diperbarui dengan konfigurasi terbaru. Titik akhir ini tidak tersedia kecuali Anda memiliki spring-cloud-bus
sebagai dependensi dengan yang dikonfigurasi. Lihat dokumentasi Azure Bus Layanan Spring Cloud Bus untuk informasi selengkapnya. Koneksi bus layanan hanya perlu disiapkan dan pustaka Azure App Configuration akan menangani pengiriman dan penerimaan pesan.
Verifikasikan dan uji aplikasi
Setelah aplikasi Anda berjalan, gunakan curl untuk menguji aplikasi Anda, misalnya:
curl -X GET https://my-azure-webapp.azurewebsites.net
Buka Portal Microsoft Azure dan buka sumber daya App Configuration yang terkait dengan Aplikasi Anda. Pilih Penjelajah Konfigurasi di bawah Operasi dan perbarui nilai kunci berikut:
Tombol Nilai application/config.message Halo - Diperbarui Refresh halaman browser untuk melihat pesan baru yang ditampilkan.
Membersihkan sumber daya
Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.
Penting
Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya yang ada di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini dalam grup sumber daya yang ada yang berisi sumber daya lain yang ingin disimpan, hapus setiap sumber daya satu per satu dari panelnya masing-masing, bukan menghapus grup sumber daya.
- Masuk ke portal Azure, lalu pilih Grup sumber daya.
- Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
- Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
- Pilih Hapus grup sumber daya.
- Anda akan diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.
Setelah beberapa saat, grup sumber daya dan semua sumber dayanya akan dihapus.
Langkah berikutnya
Dalam tutorial ini, Anda telah mengaktifkan aplikasi Java Spring Anda untuk menyegarkan pengaturan konfigurasi dari Azure App Configuration secara dinamis. Untuk pertanyaan lebih lanjut, lihat dokumentasi referensi, dokumentasi ini berisi semua detail tentang cara kerja pustaka Spring Cloud Azure App Configuration. Untuk mempelajari cara menggunakan identitas terkelola Azure guna menyederhanakan akses ke App Configuration, lanjut ke tutorial berikutnya.