Mengonfigurasi Spring Cloud Config Server terkelola di Azure Spring Apps
Catatan
Paket Basic, Standard, dan Enterprise tidak digunakan lagi mulai pertengahan Maret 2025, dengan periode penghentian 3 tahun. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.
Konsumsi Standar dan paket khusus akan ditolak mulai 30 September 2024, dengan pematian lengkap setelah enam bulan. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat Memigrasikan konsumsi Azure Spring Apps Standard dan paket khusus ke Azure Container Apps.
Artikel ini berlaku untuk: ✔️ Java ✔️ C#
Artikel ini berlaku untuk: ✔️ Konsumsi standar dan khusus (Pratinjau) ✔️ Basic/Standard ✔️ Enterprise
Artikel ini memperlihatkan kepada Anda cara mengonfigurasi Spring Cloud Config Server terkelola di Azure Spring Apps.
Spring Cloud Config Server menyediakan dukungan sisi klien dan server untuk konfigurasi yang dieksternalisasi dalam sistem terdistribusi. Instans Spring Cloud Config Server menyediakan tempat terpusat untuk mengelola properti eksternal untuk aplikasi di semua lingkungan. Untuk informasi selengkapnya, lihat Konfigurasi Spring Cloud.
Catatan
Untuk menggunakan server konfigurasi dalam konsumsi Standar dan paket khusus, Anda harus mengaktifkannya terlebih dahulu. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan Spring Cloud Config Server di Azure Spring Apps.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Instans layanan Azure Spring Apps yang sudah disediakan dan berjalan menggunakan paket Dasar atau Standar. Untuk menyiapkan dan meluncurkan layanan Azure Spring Apps, lihat Mulai Cepat: Menyebarkan aplikasi pertama Anda ke Azure Spring Apps.
- Instans layanan Azure Spring Apps yang sudah disediakan dan berjalan. Untuk menyiapkan dan meluncurkan layanan Azure Spring Apps, lihat Mulai Cepat: Membangun dan menyebarkan aplikasi ke Azure Spring Apps menggunakan paket Enterprise.
- Git.
Mengaktifkan Spring Cloud Config Server
Anda dapat mengaktifkan Spring Cloud Config Server saat memprovisikan instans layanan paket Azure Spring Apps Enterprise. Jika Anda sudah memiliki instans paket Azure Spring Apps Enterprise, lihat bagian Kelola Spring Cloud Config Server di instans paket Enterprise yang sudah ada di artikel ini.
Anda dapat mengaktifkan Spring Cloud Config Server menggunakan portal Azure atau Azure CLI.
Gunakan langkah-langkah berikut untuk mengaktifkan Spring Cloud Config Server:
Buka portal Microsoft Azure.
Pada tab Dasar , pilih Tingkat perusahaan di bagian Harga dan tentukan informasi yang diperlukan. Kemudian, pilih Berikutnya: Komponen terkelola.
Pada tab Komponen terkelola, pilih Aktifkan Spring Cloud Config Server.
Tentukan pengaturan lain, lalu pilih Tinjau dan Buat.
Pada tab Tinjau buat , pastikan Aktifkan Spring Cloud Config Server diatur ke Ya. Pilih Buat untuk membuat instans paket Enterprise.
Batasan
Ada beberapa batasan saat Anda menggunakan Config Server dengan back end Git. Properti berikut secara otomatis disuntikkan ke lingkungan aplikasi Anda untuk mengakses Server Konfigurasi dan Penemuan Layanan. Jika Anda juga mengonfigurasi properti tersebut dari file Config Server, Anda mungkin mengalami konflik dan perilaku tak terduga.
eureka.client.service-url.defaultZone
eureka.client.tls.keystore
eureka.instance.preferIpAddress
eureka.instance.instance-id
server.port
spring.cloud.config.tls.keystore
spring.config.import
spring.application.name
spring.jmx.enabled
management.endpoints.jmx.exposure.include
Perhatian
Hindari menempatkan properti ini di file aplikasi Config Server Anda.
Membuat file Config Server Anda
Azure Spring Apps mendukung Azure DevOps Server, GitHub, GitLab, dan Bitbucket untuk menyimpan file Config Server Anda. Ketika repositori Anda siap, Anda dapat membuat file konfigurasi dan menyimpannya di sana.
Beberapa properti yang dapat dikonfigurasi hanya tersedia untuk jenis tertentu. Bagian berikut ini menjelaskan properti untuk setiap jenis repositori.
Catatan
Config Server mengambil master
(di Git) sebagai label default jika Anda tidak menentukannya. Namun, GitHub baru-baru ini mengubah cabang default dari master
ke main
. Untuk menghindari kegagalan Server Konfigurasi Azure Spring Apps, pastikan untuk memperhatikan label default saat menyiapkan Config Server dengan GitHub, terutama untuk repositori yang baru dibuat.
Menggunakan tanda hubung (-) untuk memisahkan kata adalah satu-satunya konvensi penamaan properti yang saat ini didukung. Misalnya, Anda dapat menggunakan default-label
, tetapi tidak defaultLabel
.
Repositori publik
Saat Anda menggunakan repositori publik, properti yang dapat dikonfigurasi lebih terbatas daripada repositori privat.
Tabel berikut mencantumkan properti yang dapat dikonfigurasi yang dapat Anda gunakan untuk menyiapkan repositori Git publik:
Properti | Wajib | Fitur |
---|---|---|
uri |
Ya | URI repositori Git yang digunakan sebagai back end Config Server. Harus dimulai dengan http:// , , git@ https:// , atau ssh:// . |
default-label |
No | Label default repositori Git. Harus berupa nama cabang, nama tag, atau ID penerapan di repositori. |
search-paths |
No | Array string yang digunakan untuk mencari subdirektori dari repositori Git. |
Repositori privat dengan autentikasi SSH
Tabel berikut mencantumkan properti yang dapat dikonfigurasi yang dapat Anda gunakan untuk menyiapkan repositori Git privat dengan SSH:
Properti | Wajib | Fitur |
---|---|---|
uri |
Ya | URI repositori Git yang digunakan sebagai back end Config Server. Harus dimulai dengan http:// , , git@ https:// , atau ssh:// . |
default-label |
No | Label default repositori Git. Harus berupa nama cabang, nama tag, atau ID penerapan repositori. |
search-paths |
No | Array string yang digunakan untuk mencari subdirektori dari repositori Git. |
private-key |
No | Kunci privat SSH untuk mengakses repositori Git. Diperlukan saat URI dimulai dengan git@ atau ssh:// . |
host-key |
No | Kunci host server repositori Git. Tidak boleh menyertakan awalan algoritma seperti yang dicakup oleh host-key-algorithm . |
host-key-algorithm |
No | Algoritma kunci host. Harus ssh-dss , , ssh-rsa ecdsa-sha2-nistp256 , ecdsa-sha2-nistp384 , atau ecdsa-sha2-nistp521 . Diperlukan hanya jika host-key ada. |
strict-host-key-checking |
No | Indikator Server Konfigurasi yang menunjukkan apakah gagal dimulai saat menggunakan privat host-key . Harus ( true nilai default) atau false . |
Repositori privat dengan autentikasi dasar
Tabel berikut mencantumkan properti yang dapat dikonfigurasi yang dapat Anda gunakan untuk menyiapkan repositori Git privat dengan autentikasi dasar:
Properti | Wajib | Fitur |
---|---|---|
uri |
Ya | URI repositori Git yang digunakan sebagai back end Config Server. Harus dimulai dengan http:// , , git@ https:// , atau ssh:// . |
default-label |
No | Label default repositori Git. Harus berupa nama cabang, nama tag, atau commit-id di repositori. |
search-paths |
No | Array string yang digunakan untuk mencari subdirektori dari repositori Git. |
username |
No | Nama pengguna yang digunakan untuk mengakses server repositori Git. Diperlukan ketika server repositori Git mendukung autentikasi dasar HTTP. |
password |
No | Kata sandi atau token akses pribadi yang digunakan untuk mengakses server repositori Git. Diperlukan ketika server repositori Git mendukung autentikasi dasar HTTP. |
Catatan
Banyak server repositori Git mendukung penggunaan token daripada kata sandi untuk autentikasi dasar HTTP. Beberapa repositori mengizinkan token untuk bertahan tanpa batas waktu. Namun, beberapa server repositori Git, termasuk Azure DevOps Server, memaksa token kedaluwarsa dalam beberapa jam. Repositori yang menyebabkan token kedaluwarsa tidak boleh menggunakan autentikasi berbasis token dengan Azure Spring Apps. Jika Anda menggunakan token seperti itu, ingatlah untuk memperbaruinya sebelum kedaluwarsa.
GitHub telah menghapus dukungan untuk autentikasi kata sandi, jadi Anda perlu menggunakan token akses pribadi alih-alih autentikasi kata sandi untuk GitHub. Untuk informasi selengkapnya, lihat Persyaratan autentikasi token untuk operasi Git.
Repositori Git lainnya
Tabel berikut mencantumkan properti yang dapat dikonfigurasi yang dapat Anda gunakan untuk menyiapkan repositori Git dengan pola:
Properti | Wajib | Fitur |
---|---|---|
repos |
No | Peta yang terdiri dari pengaturan untuk repositori Git dengan nama yang diberikan. |
repos."uri" |
Ya pada repos |
URI repositori Git yang digunakan sebagai back end Config Server. Harus dimulai dengan http:// , , git@ https:// , atau ssh:// . |
repos."name" |
Ya pada repos |
Nama untuk mengidentifikasi repositori; misalnya, team-A atau team-B . Diperlukan hanya jika repos ada. |
repos."pattern" |
No | Array string yang digunakan untuk mencocokkan nama aplikasi. Untuk setiap pola, gunakan format {application}/{profile} dengan kartubebas. |
repos."default-label" |
No | Label default repositori Git. Harus berupa nama cabang, nama tag, atau penerapan IOD repositori. |
repos."search-paths " |
No | Array string yang digunakan untuk mencari subdirektori dari repositori Git. |
repos."username" |
No | Nama pengguna yang digunakan untuk mengakses server repositori Git. Diperlukan ketika server repositori Git mendukung autentikasi dasar HTTP. |
repos."password" |
No | Kata sandi atau token akses pribadi yang digunakan untuk mengakses server repositori Git. Diperlukan ketika server repositori Git mendukung autentikasi dasar HTTP. |
repos."private-key" |
No | Kunci privat SSH untuk mengakses repositori Git. Diperlukan ketika URI dimulai dengan git@ atau ssh:// . |
repos."host-key" |
No | Kunci host server repositori Git. Tidak boleh menyertakan awalan algoritma seperti yang dicakup oleh host-key-algorithm . |
repos."host-key-algorithm" |
No | Algoritma kunci host. Harus ssh-dss , , ssh-rsa ecdsa-sha2-nistp256 , ecdsa-sha2-nistp384 , atau ecdsa-sha2-nistp521 . Diperlukan hanya jika host-key ada. |
repos."strict-host-key-checking" |
No | Menunjukkan apakah instans Config Server gagal dimulai saat menggunakan privat host-key . Harus ( true nilai default) atau false . |
Tabel berikut menunjukkan beberapa contoh pola untuk mengonfigurasi layanan Anda dengan repositori tambahan opsional. Untuk informasi selengkapnya, lihat bagian Repositori tambahan di artikel ini dan bagian Pencocokan Pola dan Beberapa Repositori di Spring Cloud Config.
Pola | Deskripsi |
---|---|
test-config-server-app-0/* |
Pola dan URI repositori cocok dengan aplikasi boot Spring bernama test-config-server-app-0 dengan profil apa pun. |
test-config-server-app-1/dev |
Pola dan URI repositori cocok dengan aplikasi boot Spring bernama test-config-server-app-1 dengan profil dev. |
test-config-server-app-2/prod |
Pola dan URI repositori cocok dengan aplikasi boot Spring bernama test-config-server-app-2 dengan profil prod. |
Mengonfigurasi repositori Git terhadap Config Server
Setelah Anda menyimpan file konfigurasi di repositori, gunakan langkah-langkah berikut untuk menyambungkan Azure Spring Apps ke repositori:
Masuk ke portal Azure.
Buka halaman Ringkasan Azure Spring Apps Anda.
Pilih Spring Cloud Config Server di panel navigasi.
Di bagian Repositori default, atur URI menjadi
https://github.com/Azure-Samples/piggymetrics-config
.Pilih Validasi.
Setelah validasi selesai, klik Terapkan untuk menyimpan perubahan Anda.
Diperlukan waktu beberapa menit untuk memperbarui konfigurasi. Anda harus mendapatkan pemberitahuan saat konfigurasi selesai.
Masukkan informasi repositori langsung ke portal Azure
Anda dapat memasukkan informasi repositori untuk repositori default dan, secara opsional, untuk repositori tambahan.
Repositori default
Bagian ini memperlihatkan kepada Anda cara memasukkan informasi repositori untuk repositori publik atau privat. Untuk repositori privat, Anda dapat menggunakan Autentikasi dasar atau SSH.
Gunakan langkah-langkah berikut untuk memasukkan informasi repositori untuk repositori publik:
- Di bagian Repositori default, dalam kotak Uri , tempelkan URI repositori.
- Untuk pengaturan Label, masukkan konfigurasi.
- Pastikan bahwa pengaturan Autentikasi adalah Publik.
- Pilih Terapkan.
Gunakan langkah-langkah berikut untuk memasukkan informasi repo untuk repositori privat menggunakan kata sandi dasar/autentikasi berbasis token:
Di bagian Repositori default, dalam kotak Uri , tempelkan URI repositori.
Di bawah Autentikasi, pilih Edit Autentikasi.
Di panel Edit Autentikasi , pada daftar drop-down Jenis autentikasi, pilih HTTP Basic.
Masukkan nama pengguna dan kata sandi/token Anda untuk memberikan akses ke Azure Spring Apps.
Pilih OK, lalu pilih Terapkan untuk menyelesaikan penyiapan instans Config Server Anda.
Catatan
Banyak server repositori Git mendukung penggunaan token daripada kata sandi untuk autentikasi dasar HTTP. Beberapa repositori mengizinkan token untuk bertahan tanpa batas waktu. Namun, beberapa server repositori Git, termasuk Azure DevOps Server, memaksa token kedaluwarsa dalam beberapa jam. Repositori yang menyebabkan token kedaluwarsa tidak boleh menggunakan autentikasi berbasis token dengan Azure Spring Apps. Jika Anda menggunakan token seperti itu, ingatlah untuk memperbaruinya sebelum kedaluwarsa.
GitHub telah menghapus dukungan untuk autentikasi kata sandi, jadi Anda perlu menggunakan token akses pribadi alih-alih autentikasi kata sandi untuk GitHub. Untuk informasi selengkapnya, lihat Persyaratan autentikasi token untuk operasi Git.
Gunakan langkah-langkah berikut untuk memasukkan informasi repositori untuk repositori privat menggunakan SSH:
Di bagian Repositori default, dalam kotak Uri , tempelkan URI repositori.
Di bawah Autentikasi, pilih Edit Autentikasi.
Pada panel Edit Autentikasi , di daftar drop-down Jenis autentikasi, pilih SSH.
Masukkan kunci privat Anda. Secara opsional, tentukan kunci host dan algoritma kunci host Anda.
Sertakan kunci publik Anda di repositori Config Server Anda.
Pilih OK, lalu pilih Terapkan untuk menyelesaikan penyiapan instans Config Server Anda.
Repositori ekstra
Jika Anda ingin mengonfigurasi layanan dengan repositori tambahan opsional, gunakan langkah-langkah berikut:
- Tentukan pengaturan Uri dan Autentikasi seperti yang Anda lakukan untuk repositori default. Pastikan untuk menyertakan pengaturan Nama untuk pola Anda.
- Pilih Terapkan untuk melampirkan repositori ke instans Anda.
Mengonfigurasi repositori Git dengan mengimpor file YAML
Jika Anda menulis file YAML dengan pengaturan repositori, Anda dapat mengimpor file langsung dari komputer lokal Anda ke Azure Spring Apps. Contoh berikut menunjukkan file YAML sederhana untuk repositori privat dengan autentikasi dasar:
spring:
cloud:
config:
server:
git:
uri: https://github.com/azure-spring-apps-samples-pr/config-server-repository.git
username: <username>
password: <password/token>
Gunakan langkah-langkah berikut untuk mengimpor file YAML:
Pilih Impor pengaturan lalu pilih file YAML dari direktori proyek Anda. Pilih impor.
Panel Pemberitahuan menampilkan
async
operasi. Server Konfigurasi harus melaporkan keberhasilan setelah 1-2 menit. Informasi dari file YAML Anda ditampilkan di portal Azure.Pilih Terapkan untuk menyelesaikan impor.
Mengonfigurasi Azure Repos terhadap Server Konfigurasi
Azure Spring Apps dapat mengakses repositori Git yang bersifat publik, diamankan oleh SSH, atau diamankan menggunakan autentikasi dasar HTTP. Autentikasi dasar HTTP adalah yang paling mudah dari opsi untuk membuat dan mengelola repositori dengan Azure Repos.
Mendapatkan URL repositori dan kredensial
Gunakan langkah-langkah berikut untuk mendapatkan URL repositori dan kredensial Anda:
Di portal Azure Repos untuk proyek Anda, pilih Kloning.
Salin URL klon dari kotak teks. URL ini biasanya dalam bentuk berikut:
https://<organization name>@dev.azure.com/<organization name>/<project name>/_git/<repository name>
Hapus semuanya setelah
https://
dan sebelumdev.azure.com
, termasuk@
simbol . URL yang dihasilkan harus dalam bentuk berikut:https://dev.azure.com/<organization name>/<project name>/_git/<repository name>
Simpan URL ini untuk digunakan nanti.
Pilih Buat Kredensial Git untuk menampilkan nama pengguna dan kata sandi. Simpan nama pengguna dan kata sandi ini untuk digunakan di bagian berikut.
Mengonfigurasi repositori Git terhadap Config Server
Gunakan langkah-langkah berikut untuk mengonfigurasi repositori:
Masuk ke portal Azure.
Buka halaman Ringkasan Azure Spring Apps Anda.
Pilih layanan yang akan dikonfigurasi.
Di panel kiri halaman layanan di bawah Pengaturan, pilih tab Spring Cloud Config Server .
Gunakan langkah-langkah berikut untuk mengonfigurasi repositori yang Anda buat:
- Tambahkan URI repositori yang Anda simpan sebelumnya.
- Pilih pengaturan di bawah Autentikasi untuk membuka panel Edit Autentikasi .
- Untuk Jenis autentikasi, pilih HTTP Basic.
- Untuk Nama Pengguna, tentukan nama pengguna yang Anda simpan sebelumnya.
- Untuk Kata Sandi, tentukan kata sandi yang Anda simpan sebelumnya.
- Pilih OK, lalu tunggu hingga operasi selesai.
Mengikat aplikasi ke Spring Cloud Config Server
Gunakan perintah berikut untuk mengikat aplikasi ke Spring Cloud Config Server, memungkinkan aplikasi untuk menarik konfigurasi dari Config Server.
az spring config-server bind \
--resource-group <resource-group> \
--service <service-name> \
--app <app-name>
Anda juga dapat menyiapkan pengikatan aplikasi dari portal Azure, seperti yang ditunjukkan pada cuplikan layar berikut:
Catatan
Perubahan ini membutuhkan waktu beberapa menit untuk disebarluaskan ke semua aplikasi ketika status server konfigurasi berubah.
Jika Anda mengubah status pengikatan/pengikatan, Anda perlu memulai ulang atau menyebarkan ulang aplikasi.
Anda sekarang dapat memilih untuk mengikat aplikasi Anda ke Spring Cloud Config Server secara langsung saat membuat aplikasi baru dengan menggunakan perintah berikut:
az spring app create \
--resource-group <resource-group> \
--service <service-name> \
--name <app-name> \
--bind-config-server
Anda juga dapat mengikat aplikasi Anda ke Spring Cloud Config Server dari portal Azure, seperti yang ditunjukkan pada cuplikan layar berikut:
Menghapus konfigurasi Anda
Pilih Reset pada tab Spring Cloud Config Server untuk menghapus pengaturan Anda yang sudah ada. Hapus pengaturan server konfigurasi jika Anda ingin menyambungkan instans Config Server ke sumber lain, seperti saat Anda berpindah dari GitHub ke Azure DevOps Server.
Refresh Server Konfigurasi
Ketika properti diubah, layanan yang menggunakan properti tersebut harus diberi tahu sebelum perubahan dapat dilakukan. Solusi default untuk Spring Cloud Config Server adalah memicu peristiwa refresh secara manual, yang mungkin tidak layak jika ada banyak instans aplikasi. Untuk informasi selengkapnya, lihat Konfigurasi Terpusat
Sebagai gantinya, Anda dapat secara otomatis menyegarkan nilai dari Config Server dengan membiarkan polling klien konfigurasi untuk perubahan berdasarkan refresh internal.
Gunakan langkah-langkah berikut untuk menyegarkan nilai secara otomatis dari Config Server:
Daftarkan tugas terjadwal untuk merefresh konteks dalam interval tertentu, seperti yang ditunjukkan dalam contoh berikut:
@ConditionalOnBean({RefreshEndpoint.class}) @Configuration @AutoConfigureAfter({RefreshAutoConfiguration.class, RefreshEndpointAutoConfiguration.class}) @EnableScheduling public class ConfigClientAutoRefreshConfiguration implements SchedulingConfigurer { @Value("${spring.cloud.config.refresh-interval:60}") private long refreshInterval; @Value("${spring.cloud.config.auto-refresh:false}") private boolean autoRefresh; private RefreshEndpoint refreshEndpoint; public ConfigClientAutoRefreshConfiguration(RefreshEndpoint refreshEndpoint) { this.refreshEndpoint = refreshEndpoint; } @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { if (autoRefresh) { // set minimal refresh interval to 5 seconds refreshInterval = Math.max(refreshInterval, 5); scheduledTaskRegistrar.addFixedRateTask(() -> refreshEndpoint.refresh(), refreshInterval * 1000); } } }
Aktifkan rekam otomatis dan atur interval refresh yang sesuai dalam file application.yml Anda. Dalam contoh berikut, polling klien untuk konfigurasi berubah setiap 60 detik, yang merupakan nilai minimum yang dapat Anda atur untuk interval refresh.
Secara default, refresh otomatis diatur ke
false
dan interval refresh diatur ke60 seconds
.spring: cloud: config: auto-refresh: true refresh-interval: 60 management: endpoints: web: exposure: include: - refresh
Tambahkan
@RefreshScope
ke kode Anda. Dalam contoh berikut, variabelconnectTimeout
secara otomatis di-refresh setiap 60 detik.@RestController @RefreshScope public class HelloController { @Value("${timeout:4000}") private String connectTimeout; }
Untuk informasi selengkapnya, lihat sampel config-client-polling .
Mengelola Spring Cloud Config Server dalam instans paket Enterprise yang sudah ada
Anda dapat mengaktifkan dan menonaktifkan Spring Cloud Config Server setelah pembuatan layanan menggunakan portal Azure atau Azure CLI. Sebelum menonaktifkan Spring Cloud Config Server, Anda diharuskan untuk membatalkan ikatan semua aplikasi Anda darinya.
Gunakan langkah-langkah berikut untuk mengaktifkan atau menonaktifkan Spring Cloud Config Server: