Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini membantu migrasi ke Spring Cloud Azure 4.0 dari pustaka warisan Azure Spring.
Perkenalan
Kami akan memanggil pustaka yang ID grup dan ID artefaknya mengikuti pola
Panduan ini akan berfokus pada perbandingan berdampingan untuk konfigurasi serupa antara pustaka modern dan warisan.
Pemahaman tentang paket com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-*, atau com.azure.spring:azure-spring-integration-* diasumsikan.
Jika Anda baru menggunakan pustaka Spring Cloud Azure 4.0, lihat panduan pengembang Spring Cloud Azure daripada panduan ini.
Manfaat migrasi
Pertanyaan alami untuk ditanyakan ketika mempertimbangkan apakah akan mengadopsi versi atau pustaka baru adalah manfaatnya. Karena Azure telah matang dan dirangkul oleh sekelompok pengembang yang lebih beragam, kami telah berfokus pada pembelajaran pola dan praktik untuk mendukung produktivitas pengembang dengan sebaik-baiknya dan untuk memahami kesenjangan yang dimiliki pustaka Spring Cloud Azure.
Ada beberapa area umpan balik konsisten yang dinyatakan di seluruh pustaka Spring Cloud Azure. Yang paling penting adalah bahwa pustaka untuk layanan Azure yang berbeda belum mengaktifkan serangkaian konfigurasi lengkap. Selain itu, inkonsistensi penamaan proyek, ID artefak, versi, dan konfigurasi membuat kurva pembelajaran terjal.
Untuk meningkatkan pengalaman pengembangan di seluruh pustaka Spring Cloud Azure, serangkaian pedoman desain diperkenalkan untuk memastikan bahwa pustaka Spring Cloud Azure memiliki nuansa alami dan idiomatik sehubungan dengan ekosistem Spring. Detail lebih lanjut tersedia dalam dokumen design bagi mereka yang tertarik.
Spring Cloud Azure 4.0 memberikan pengalaman bersama di seluruh pustaka yang terintegrasi dengan proyek Spring yang berbeda, misalnya Spring Boot, Spring Integration, Spring Cloud Stream, dan sebagainya. Pengalaman bersama meliputi:
- BOM terpadu untuk menyertakan semua pustaka Spring Cloud Azure 4.0.
- Konvensi penamaan yang konsisten untuk artefak.
- Cara terpadu untuk mengonfigurasi kredensial, proksi, coba lagi, lingkungan cloud, dan pengaturan lapisan transportasi.
- Mendukung semua metode autentikasi yang didukung Azure Service atau Azure Service SDK.
Ikhtisar
Panduan migrasi ini terdiri dari bagian berikut:
- Perubahan penamaan untuk Spring Cloud Azure 4.0
- Perubahan artefak: diganti namanya / ditambahkan / dihapus
- Perubahan dependensi
- Perubahan autentikasi
- Properti konfigurasi
- Perubahan pemecahan API
- Perubahan pustaka
Penamaan perubahan
Tidak pernah ada nama yang konsisten atau resmi untuk memanggil semua pustaka Azure Spring Cloud. Beberapa di antaranya disebut Azure Spring Boot dan beberapa di antaranya Spring on Azure. Sejak 4.0, kami mulai menggunakan nama proyek Spring Cloud Azure untuk mewakili semua pustaka Azure Spring.
BOM
Kami biasa mengirim dua BOM untuk pustaka kami, azure-spring-boot-bom dan azure-spring-cloud-dependencies, tetapi kami menggabungkan kedua BOM ini menjadi satu BOM sejak 4.0, spring-cloud-azure-dependencies. Tambahkan entri di bagian dependencyManagement proyek Anda untuk mendapatkan manfaat dari manajemen dependensi.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>7.3.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nota
Jika Anda menggunakan Spring Boot 4.0.x, pastikan untuk mengatur versi ke spring-cloud-azure-dependencies7.3.0.
Jika Anda menggunakan Spring Boot 3.5.x, pastikan untuk mengatur versi ke spring-cloud-azure-dependencies6.4.0.
Jika Anda menggunakan Spring Boot 3.1.x-3.5.x, pastikan untuk mengatur versi ke spring-cloud-azure-dependencies5.25.0.
Jika Anda menggunakan Spring Boot 2.x, pastikan untuk mengatur versi spring-cloud-azure-dependencies ke 4.20.0.
Bill of Material (BOM) ini harus dikonfigurasi di bagian <dependencyManagement> dari file pom.xml Anda. Ini memastikan bahwa semua dependensi Spring Cloud Azure menggunakan versi yang sama.
Untuk informasi selengkapnya tentang versi yang digunakan untuk BOM ini, lihat Versi Spring Cloud Azure Harus Saya Gunakan.
Perubahan artefak: diganti namanya / ditambahkan / dihapus
ID grup sama untuk pustaka Azure Spring Cloud modern dan warisan. Mereka semua com.azure.spring. ID artefak untuk pustaka Spring Cloud Azure modern telah berubah. Menurut proyek Spring miliknya, Spring Boot, Spring Integration, atau Spring Cloud Stream, pola ID artefak dapat spring-cloud-azure-starter-[service], spring-integration-azure-[service], atau spring-cloud-azure-stream-binder-[service]. Permulaan warisan untuk masing-masing memiliki ID artefak setelah pola azure-spring-*. Ini menyediakan cara yang cepat dan dapat diakses untuk membantu memahami, sekilas, baik Anda menggunakan pemula modern atau warisan.
Dalam proses pengembangan Spring Cloud Azure 4.0, kami mengganti nama beberapa artefak untuk membuatnya mengikuti konvensi penamaan baru, menghapus beberapa artefak sehingga fungsionalitas dapat dimasukkan ke dalam artefak yang lebih tepat, dan menambahkan beberapa artefak baru untuk melayani beberapa skenario dengan lebih baik.
Tabel berikut menunjukkan pemetaan antara ID artefak warisan dan ID artefak modern:
| ID Artefak Warisan | ID Artefak Modern | Deskripsi |
|---|---|---|
azure-spring-boot-starter |
spring-cloud-azure-starter |
Artefak ini telah dihapus dengan semua fungsionalitas digabungkan ke dalam artefak spring-cloud-azure-starter baru. |
azure-spring-boot-starter-active-directory |
spring-cloud-azure-starter-active-directory |
Mengganti nama artefak. |
azure-spring-boot-starter-active-directory-b2c |
spring-cloud-azure-starter-active-directory-b2c |
Mengganti nama artefak. |
azure-spring-boot-starter-cosmos |
spring-cloud-azure-starter-data-cosmos |
Mengganti nama artefak untuk menambahkan data, yang menunjukkan penggunaan Spring Data Azure Cosmos DB. |
azure-spring-boot-starter-keyvault-certificates |
tidak berlaku | Tidak disertakan dalam rilis ini, tetapi akan didukung dalam versi yang lebih baru. |
azure-spring-boot-starter-keyvault-secrets |
spring-cloud-azure-starter-keyvault-secrets |
Mengganti nama artefak. |
azure-spring-boot-starter-servicebus-jms |
spring-cloud-azure-starter-servicebus-jms |
Mengganti nama artefak. |
azure-spring-boot-starter-storage |
spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
Artefak warisan berisi fungsionalitas Blob Penyimpanan dan Berbagi File, itu telah disambungkan ke dalam dua artefak terpisah dalam 4.0, spring-cloud-azure-starter-storage-blob dan spring-cloud-azure-starter-storage-file-share. |
azure-spring-boot |
tidak berlaku | Artefak ini telah dihapus dengan semua fungsionalitas digabungkan ke dalam artefak spring-cloud-azure-autoconfigure baru. |
azure-spring-cloud-autoconfigure |
tidak berlaku | Artefak ini telah dihapus dengan semua fungsionalitas digabungkan ke dalam artefak spring-cloud-azure-autoconfigure baru. |
azure-spring-cloud-context |
tidak berlaku | Artefak ini telah dihapus dengan semua fungsionalitas digabungkan ke dalam artefak spring-cloud-azure-autoconfigure dan spring-cloud-azure-resourcemanager baru. |
azure-spring-cloud-messaging |
spring-messaging-azure |
Anotasi pendengar pesan telah dihilangkan. |
azure-spring-cloud-starter-cache |
tidak berlaku | Artefak ini telah dihapus, untuk menggunakan redis, cukup tambahkan spring-boot-starter-data-redis, , spring-boot-starter-cachespring-cloud-azure-resourcemanager, dan spring-cloud-azure-starter. Untuk informasi selengkapnya tentang penggunaan, lihat dukungan Spring Cloud Azure Redis. |
azure-spring-cloud-starter-eventhubs-kafka |
tidak berlaku | Artefak ini telah dihapus, untuk menggunakan kafka, cukup tambahkan spring kafka, spring-cloud-azure-resourcemanager, dan spring-cloud-azure-starter. Untuk informasi selengkapnya tentang penggunaan, lihat dukungan Spring Cloud Azure Kafka. |
azure-spring-cloud-starter-eventhubs |
spring-cloud-azure-starter-integration-eventhubs |
Mengganti nama artefak untuk menambahkan integration, yang menunjukkan penggunaan Integrasi Spring dengan Event Hubs. |
azure-spring-cloud-starter-servicebus |
spring-cloud-azure-starter-integration-servicebus |
Mengganti nama artefak untuk menambahkan integration, yang menunjukkan penggunaan Integrasi Spring dengan Bus Layanan. |
azure-spring-cloud-starter-storage-queue |
spring-cloud-azure-starter-integration-storage-queue |
Mengganti nama artefak untuk menambahkan integration, yang menunjukkan penggunaan Integrasi Spring dengan Antrean Penyimpanan. |
azure-spring-cloud-storage |
tidak berlaku | Artefak ini telah dihapus dengan semua fungsi yang digabungkan ke artefak spring-cloud-azure-autoconfigure baru. |
azure-spring-cloud-stream-binder-eventhubs |
spring-cloud-azure-stream-binder-eventhubs |
Artefak ini telah direfaktor menggunakan desain baru, terutama spring-cloud-azure-stream-binder-eventhubs dan spring-cloud-azure-stream-binder-eventhubs-core. |
azure-spring-cloud-stream-binder-service-core |
spring-cloud-azure-stream-binder-servicebus-core |
Mengganti nama artefak. |
azure-spring-cloud-stream-binder-servicebus-queue |
spring-cloud-azure-stream-binder-servicebus |
Artefak ini telah dihapus dengan semua fungsionalitas digabungkan ke dalam artefak spring-cloud-azure-stream-binder-servicebus. |
azure-spring-cloud-stream-binder-servicebus-topic |
spring-cloud-azure-stream-binder-servicebus |
Artefak ini telah dihapus dengan semua fungsionalitas digabungkan ke dalam artefak spring-cloud-azure-stream-binder-servicebus. |
azure-spring-integration-core |
spring-integration-azure-core |
Mengganti nama artefak. |
azure-spring-integration-eventhubs |
spring-integration-azure-eventhubs |
Ganti nama artefak. |
azure-spring-integration-servicebus |
spring-integration-azure-servicebus |
Ganti nama artefak. |
azure-spring-integration-storage-queue |
spring-integration-azure-storage-queue |
Ganti nama artefak. |
| tidak berlaku | spring-cloud-azure-actuator |
Artefak Spring Cloud Azure Actuator yang baru ditambahkan. |
| tidak berlaku | spring-cloud-azure-actuator-autoconfigure |
Artefak Konfigurasi Otomatis Spring Cloud Azure Actuator yang baru ditambahkan, termasuk konfigurasi otomatis untuk aktuator. |
| tidak berlaku | spring-cloud-azure-autoconfigure |
Artefak Konfigurasi Otomatis Spring Cloud Azure yang baru ditambahkan, termasuk semua konfigurasi otomatis untuk klien SDK, dukungan Spring Security, dukungan Spring Data, dan dukungan Integrasi Spring. |
| tidak berlaku | spring-cloud-azure-core |
Artefak Spring Cloud Azure Core yang baru ditambahkan, termasuk semua fungsi inti. |
| tidak berlaku | spring-cloud-azure-resourcemanager |
Artefak Resource Manager yang baru ditambahkan. Ini adalah pustaka Core menggunakan Azure Resource Manager untuk membaca metadata dan membuat sumber daya. |
| tidak berlaku | spring-cloud-azure-service |
Artefak Spring Cloud Azure Service yang baru ditambahkan, termasuk abstraksi untuk layanan Azure. |
| tidak berlaku | spring-cloud-azure-starter-appconfiguration |
Pemula yang baru ditambahkan untuk menggunakan klien SDK Azure App Configuration. |
| tidak berlaku | spring-cloud-azure-starter-cosmos |
Pemula yang baru ditambahkan untuk menggunakan klien SDK Azure Cosmos DB. |
| tidak berlaku | spring-cloud-azure-starter-eventhubs |
Pemula yang baru ditambahkan untuk menggunakan klien SDK Azure Event Hubs. |
| tidak berlaku | spring-cloud-azure-starter-servicebus |
Pemula yang baru ditambahkan untuk menggunakan klien SDK Azure Service Bus. |
| tidak berlaku | spring-cloud-azure-starter-storage-blob |
Pemula yang baru ditambahkan untuk menggunakan klien Azure Storage Blob SDK. |
| tidak berlaku | spring-cloud-azure-starter-storage-file-share |
Pemula yang baru ditambahkan untuk menggunakan klien SDK Berbagi File Azure Storage. |
| tidak berlaku | spring-cloud-azure-starter-storage-queue |
Pemula yang baru ditambahkan untuk menggunakan klien SDK Antrean Azure Storage. |
| tidak berlaku | spring-cloud-azure-starter-stream-eventhubs |
Pemula yang baru ditambahkan untuk menggunakan Azure Event Hubs Spring Cloud Stream Binder. |
| tidak berlaku | spring-cloud-azure-starter-stream-servicebus |
Pemula yang baru ditambahkan untuk menggunakan Azure Service Bus Spring Cloud Stream Binder |
| tidak berlaku | spring-cloud-azure-stream-binder-eventhubs-core |
Artefak inti Spring Cloud Stream yang baru ditambahkan untuk Azure Event Hubs. |
Perubahan dependensi
Beberapa dependensi yang tidak perlu disertakan dalam artefak warisan, yang telah kami hapus di pustaka Spring Cloud Azure 4.0 modern. Pastikan untuk menambahkan dependensi yang dihapus secara manual ke proyek Anda untuk mencegah crash.
Pustaka yang memiliki perubahan dependensi meliputi:
spring-cloud-azure-starterspring-cloud-azure-starter-active-directoryspring-cloud-azure-starter-active-directory-b2c
Perubahan autentikasi
Spring Cloud Azure 4.0 mendukung semua metode autentikasi yang didukung setiap Azure Service SDK. Ini memungkinkan Anda untuk mengonfigurasi kredensial token global serta memberikan kredensial token di setiap tingkat layanan. Tetapi kredensial tidak diperlukan untuk mengonfigurasi Spring Cloud Azure 4.0 karena dapat menerapkan kredensial yang disimpan di lingkungan pengembangan lokal atau identitas terkelola di Azure Services. Pastikan perwakilan telah diberikan izin yang memadai untuk mengakses sumber daya Azure target.
Nota
Saat menetapkan peran kepada prinsip keamanan untuk berinteraksi dengan layanan olahpesan Azure, peran terkait Data diperlukan untuk melakukan operasi olahpesan. Untuk Azure Spring Apps pustaka Azure Stream Event Hubs / Bus Layanan Binder, peran Contributor diperlukan saat fungsi pembuatan sumber daya secara otomatis diperlukan. Untuk informasi selengkapnya, lihat peran bawaan Azure.
Kredensial berantai, kacang DefaultAzureCredential dikonfigurasi secara otomatis secara default dan akan digunakan oleh semua komponen jika tidak ada lagi informasi autentikasi yang ditentukan. Untuk informasi selengkapnya, lihat bagian DefaultAzureCredential pustaka klien Azure Identity untuk Java.
Properti konfigurasi
Migrasi properti
Kami telah membuat additional-spring-configuration-metadata.json file untuk memuluskan migrasi properti saat menggunakan dengan spring-boot-properties-migrator. Pertama, tambahkan migrasi properti berikut ke aplikasi Anda:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
Atau, jika Anda menggunakan Gradle:
runtime("org.springframework.boot:spring-boot-properties-migrator")
Jika Anda menjalankan aplikasi, aplikasi akan mengidentifikasi properti yang tidak lagi dikelola oleh Spring Cloud Azure. Jika ada penggantian, properti tersebut akan memetakan ulang properti untuk Anda sementara dengan peringatan. Jika tidak ada penggantian, laporan kesalahan akan memberi Anda informasi lebih lanjut. Bagaimanapun, konfigurasi harus diperbarui dan dependensi dihapus setelah Anda memperbarui konfigurasi.
Sebelum melanjutkan, ada baiknya menggunakan fitur pencarian IDE Anda untuk memeriksa kembali apakah Anda tidak menggunakan salah satu properti yang telah Anda migrasikan dalam pengujian integrasi.
Nota
Kami telah mengubah banyak properti konfigurasi dalam perubahan ini. Menggunakan spring-boot-properties-migrator akan membantu memuluskan migrasi Anda.
Konfigurasi global
spring-cloud-azure-starter modern memungkinkan Anda menentukan properti yang berlaku untuk semua Azure SDK di namespace spring.cloud.azure. Fitur ini tidak didukung di azure-spring-boot-starterwarisan. Konfigurasi global dapat dibagi menjadi lima kategori, yang diperlihatkan dalam tabel berikut:
| Awalan | Deskripsi |
|---|---|
spring.cloud.azure.client |
Mengonfigurasi klien transportasi di bawah setiap Azure SDK. |
spring.cloud.azure.credential |
Mengonfigurasi cara mengautentikasi dengan Microsoft Entra ID. |
spring.cloud.azure.profile |
Mengonfigurasi lingkungan cloud Azure. |
spring.cloud.azure.proxy |
Mengonfigurasi opsi proksi, berlaku untuk semua klien Azure SDK. |
spring.cloud.azure.retry |
Mengonfigurasi opsi coba lagi, berlaku untuk semua klien Azure SDK. Opsi coba lagi telah mendukung bagian dari SDK, tidak ada spring.cloud.azure.cosmos.retry. |
Untuk daftar lengkap konfigurasi, lihat properti konfigurasi Spring Cloud Azure.
Mengonfigurasi setiap SDK
Untuk detail tentang opsi konfigurasi di tingkat SDK, gunakan tautan berikut:
-
Dari
azure-spring-boot-starter-active-directorykespring-cloud-azure-starter-active-directory -
Dari
azure-spring-boot-starter-active-directory-b2ckespring-cloud-azure-starter-active-directory-b2c -
Dari
azure-spring-boot-starter-cosmoskespring-cloud-azure-starter-data-cosmos -
Dari
azure-spring-boot-starter-keyvault-secretskespring-cloud-azure-starter-keyvault-secrets -
Dari
azure-spring-boot-starter-servicebus-jmskespring-cloud-azure-starter-servicebus-jms -
Dari
azure-spring-boot-starter-storagekespring-cloud-azure-starter-storage-blob -
Dari
azure-spring-boot-starter-storagekespring-cloud-azure-starter-storage-file-share -
Dari
azure-spring-cloud-starter-eventhubskespring-cloud-azure-starter-integration-eventhubs -
Dari
azure-spring-cloud-starter-servicebuskespring-cloud-azure-starter-integration-servicebus -
Dari
azure-spring-cloud-starter-storage-queuekespring-cloud-azure-starter-integration-storage-queue -
Dari
azure-spring-cloud-stream-binder-eventhubskespring-cloud-azure-stream-binder-eventhubs -
Dari
azure-spring-cloud-stream-binder-servicebus-*kespring-cloud-azure-stream-binder-servicebus
Perubahan pemecahan API
Untuk detail tentang perubahan pemecahan API di setiap pustaka, gunakan tautan berikut:
-
Dari
azure-spring-boot-starter-active-directorykespring-cloud-azure-starter-active-directory -
Dari
azure-spring-boot-starter-active-directory-b2ckespring-cloud-azure-starter-active-directory-b2c -
Dari
azure-spring-boot-starter-storagekespring-cloud-azure-starter-storage-blob -
Dari
azure-spring-boot-starter-storagekespring-cloud-azure-starter-storage-file-share -
Dari
azure-spring-cloud-starter-eventhubskespring-cloud-azure-starter-integration-eventhubs -
Dari
azure-spring-integration-eventhubskespring-integration-azure-eventhubs -
Dari
azure-spring-cloud-starter-servicebuskespring-cloud-azure-starter-integration-servicebus -
Dari
azure-spring-integration-servicebuskespring-integration-azure-servicebus -
Dari
azure-spring-cloud-starter-storage-queuekespring-cloud-azure-starter-integration-storage-queue -
Dari
azure-spring-integration-storage-queuekespring-integration-azure-storage-queue -
Dari
azure-spring-cloud-stream-binder-eventhubskespring-cloud-azure-stream-binder-eventhubs -
Dari
azure-spring-cloud-stream-binder-servicebus-*kespring-cloud-azure-stream-binder-servicebus
Perubahan pustaka
Perubahan yang melanggar di setiap pustaka diperkenalkan sebagai berikut.
Dari azure-spring-boot-starter ke spring-cloud-azure-starter
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter dari versi 3 dari azure-spring-boot-starter.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan dependensi
Beberapa dependensi yang tidak perlu disertakan dalam artefak warisan, yang telah kami hapus di pustaka Spring Cloud Azure 4.0 modern. Pastikan untuk menambahkan dependensi yang dihapus secara manual ke proyek Anda untuk mencegah crash yang tidak disengaja.
Tabel berikut ini memperlihatkan dependensi Dihapus:
| Dependensi yang dihapus | Deskripsi |
|---|---|
org.springframework.boot:spring-boot-starter-validation |
Sertakan starter validasi jika Anda ingin menggunakan Validator Hibernate. |
Dari azure-spring-boot-starter-active-directory ke spring-cloud-azure-starter-active-directory
Panduan ini dimaksudkan untuk membantu migrasi ke spring-cloud-azure-starter-active-directory dari versi 3 dari azure-spring-boot-starter-active-directory.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan dependensi
Beberapa dependensi yang tidak perlu dalam artefak warisan telah dihapus sejak pustaka Spring Cloud Azure 4.0 modern. Tambahkan dependensi yang dihapus ini ke proyek Anda untuk mencegah crash yang tidak disengaja.
Tabel berikut ini memperlihatkan dependensi Dihapus:
| Dependensi yang dihapus | Deskripsi |
|---|---|
com.fasterxml.jackson.core:jackson-databind |
Tambahkan dependensi ini ke proyek Anda jika diperlukan. |
io.projectreactor.netty:reactor-netty |
Tambahkan dependensi ini ke proyek Anda jika diperlukan. |
org.springframework.boot:spring-boot-starter-validation |
Tambahkan dependensi ini ke proyek Anda jika diperlukan. |
org.springframework.boot:spring-boot-starter-webflux |
Tambahkan dependensi ini ke proyek Anda jika diperlukan. |
Perubahan konfigurasi SDK
Bagian ini mencakup perubahan tentang properti yang ditambahkan, dihapus, dan diubah.
- Dua poin berikut adalah yang utama untuk diperhatikan:
- Semua awalan nama properti konfigurasi diubah dari
azure.activedirectorykespring.cloud.azure.active-directory. - Properti baru
spring.cloud.azure.active-directory.enabledditambahkan untuk mengaktifkan/menonaktifkan fitur terkait Microsoft Entra. Nilai defaultnya adalahfalse.
Tabel berikut ini memperlihatkan pemetaan properti antara azure-spring-boot-starter-active-directory dan spring-cloud-azure-starter-active-directory:
| Properti warisan | Properti modern |
|---|---|
azure.activedirectory.app-id-uri |
spring.cloud.azure.active-directory.app-id-uri |
azure.activedirectory.application-type |
spring.cloud.azure.active-directory.application-type |
azure.activedirectory.authorization-clients |
spring.cloud.azure.active-directory.authorization-clients |
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type |
spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type |
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand |
spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand |
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes |
spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes |
azure.activedirectory.authenticate-additional-parameters |
spring.cloud.azure.active-directory.authenticate-additional-parameters |
azure.activedirectory.base-uri |
spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint |
azure.activedirectory.client-id |
spring.cloud.azure.active-directory.credential.client-id |
azure.activedirectory.client-secret |
spring.cloud.azure.active-directory.credential.client-secret |
azure.activedirectory.graph-membership-uri |
Periksa tabel berikut untuk informasi selengkapnya. |
azure.activedirectory.jwt-connect-timeout |
spring.cloud.azure.active-directory.jwt-connect-timeout |
azure.activedirectory.jwt-read-timeout |
spring.cloud.azure.active-directory.jwt-read-timeout |
azure.activedirectory.jwt-size-limit |
spring.cloud.azure.active-directory.jwt-size-limit |
azure.activedirectory.jwk-set-cache-lifespan |
spring.cloud.azure.active-directory.jwk-set-cache-lifespan |
azure.activedirectory.jwk-set-cache-refresh-time |
spring.cloud.azure.active-directory.jwk-set-cache-refresh-time |
azure.activedirectory.post-logout-redirect-uri |
spring.cloud.azure.active-directory.post-logout-redirect-uri |
azure.activedirectory.session-stateless |
spring.cloud.azure.active-directory.session-stateless |
azure.activedirectory.redirect-uri-template |
spring.cloud.azure.active-directory.redirect-uri-template |
azure.activedirectory.resource-server.claim-to-authority-prefix-map |
spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map |
azure.activedirectory.resource-server.principal-claim-name |
spring.cloud.azure.active-directory.resource-server.principal-claim-name |
azure.activedirectory.tenant-id |
spring.cloud.azure.active-directory.profile.tenant-id |
azure.activedirectory.user-group.allowed-group-ids |
spring.cloud.azure.active-directory.user-group.allowed-group-ids |
azure.activedirectory.user-group.allowed-group-names |
spring.cloud.azure.active-directory.user-group.allowed-group-names |
azure.activedirectory.user-name-attribute |
spring.cloud.azure.active-directory.user-name-attribute |
Jenis nilai properti berikut diubah dari
longmenjadiDuration:jwt-connect-timeoutjwt-read-timeoutjwk-set-cache-lifespan-
jwk-set-cache-refresh-time.
Properti berikut dihapus:
azure.activedirectory.allow-telemetryazure.activedirectory.user-group.enable-full-listazure.activedirectory.graph-base-uriazure.activedirectory.graph-membership-uri
Properti berikut ditambahkan:
spring.cloud.azure.active-directory.enabledspring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpointspring.cloud.azure.active-directory.user-group.use-transitive-members
Nota
Fungsi azure.activedirectory.graph-membership-uri telah digantikan oleh 2 properti: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint dan spring.cloud.azure.active-directory.user-group.use-transitive-members. Properti pertama digunakan untuk menentukan nama host, dan bendera kedua untuk menggunakan jalur URL: v1.0/me/memberOf atau v1.0/me/transitiveMemberOf.
Berikut adalah beberapa contoh migrasi:
Contoh 1. Kasus 1
Untuk warisan: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Untuk modern:
spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/+spring.cloud.azure.active-directory.user-group.use-transitive-members=false
Contoh 2. Kasus 2
Untuk warisan: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Untuk modern:
spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/+spring.cloud.azure.active-directory.user-group.use-transitive-members=true
Perubahan API
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-boot-starter-active-directory ke spring-cloud-azure-starter-active-directory:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.aad.webapi.AADJwtBearerTokenAuthenticationConverter |
com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter |
com.azure.spring.aad.webapi.AADResourceServerProperties |
com.azure.spring.cloud.autoconfigure.aad.properties.AadResourceServerProperties |
com.azure.spring.aad.webapi.AADResourceServerWebSecurityConfigurerAdapter |
com.azure.spring.cloud.autoconfigure.aad.AadResourceServerWebSecurityConfigurerAdapter |
com.azure.spring.aad.webapp.AADWebSecurityConfigurerAdapter |
com.azure.spring.cloud.autoconfigure.aad.AadWebSecurityConfigurerAdapter |
com.azure.spring.aad.webapp.AuthorizationClientProperties |
com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties |
com.azure.spring.aad.AADApplicationType |
com.azure.spring.cloud.autoconfigure.aad.properties.AadApplicationType |
com.azure.spring.aad.AADAuthorizationGrantType |
com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType |
com.azure.spring.aad.AADAuthorizationServerEndpoints |
com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationServerEndpoints |
com.azure.spring.aad.AADClientRegistrationRepository |
com.azure.spring.cloud.autoconfigure.aad.AadClientRegistrationRepository |
com.azure.spring.aad.AADTrustedIssuerRepository |
com.azure.spring.cloud.autoconfigure.aad.AadTrustedIssuerRepository |
com.azure.spring.autoconfigure.aad.AADAppRoleStatelessAuthenticationFilter |
com.azure.spring.cloud.autoconfigure.aad.filter.AadAppRoleStatelessAuthenticationFilter |
com.azure.spring.autoconfigure.aad.AADAuthenticationFilter |
com.azure.spring.cloud.autoconfigure.aad.filter.AadAuthenticationFilter |
com.azure.spring.autoconfigure.aad.AADAuthenticationProperties |
com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthenticationProperties |
com.azure.spring.autoconfigure.aad.UserPrincipal |
com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipal |
com.azure.spring.autoconfigure.aad.UserPrincipalManager |
com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipalManager |
Bagian ini mencantumkan kelas yang dihapus dari azure-spring-boot-starter-active-directory.
Menghapus kelas warisan
com.azure.spring.aad.webapp.AADHandleConditionalAccessFiltercom.azure.spring.aad.webapi.validator.AADJwtAudienceValidatorcom.azure.spring.aad.webapi.validator.AADJwtClaimValidator
Dari azure-spring-boot-starter-active-directory-b2c ke spring-cloud-azure-starter-active-directory-b2c
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-active-directory-b2c dari versi 3 dari azure-spring-boot-starter-active-directory-b2c.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan dependensi
Beberapa dependensi yang tidak perlu disertakan dalam artefak warisan, yang telah kami hapus di pustaka Spring Cloud Azure 4.0 modern. Pastikan untuk menambahkan dependensi yang dihapus secara manual ke proyek Anda untuk mencegah crash yang tidak disengaja.
Tabel berikut ini memperlihatkan dependensi Dihapus:
| Dependensi yang dihapus | Deskripsi |
|---|---|
org.springframework.boot:spring-boot-starter-validation |
Sertakan starter validasi jika Anda ingin menggunakan Validator Hibernate. |
Perubahan konfigurasi SDK
Bagian ini mencakup perubahan tentang properti yang ditambahkan, dihapus, dan diubah.
- Dua poin berikut adalah yang utama untuk diperhatikan:
- Semua nama properti konfigurasi mengubah awalan dari
azure.activedirectory.b2cmenjadispring.cloud.azure.active-directory.b2c. - Properti baru
spring.cloud.azure.active-directory.b2c.enabledditambahkan untuk memungkinkan mengaktifkan/menonaktifkan fitur terkait Azure AD B2C. Nilai defaultnya adalah false.
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-boot-starter-active-directory-b2c ke spring-cloud-azure-starter-active-directory-b2c:
| Properti warisan | Properti modern |
|---|---|
azure.activedirectory.b2c.authenticate-additional-parameters |
spring.cloud.azure.active-directory.b2c.authenticate-additional-parameters |
azure.activedirectory.b2c.authorization-clients |
spring.cloud.azure.active-directory.b2c.authorization-clients |
azure.activedirectory.b2c.authorization-clients.<AZURE-CLIENT-NAME>.authorization-grant-type |
spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE-CLIENT-NAME>.authorization-grant-type |
azure.activedirectory.b2c.authorization-clients.<AZURE-CLIENT-NAME>.scopes |
spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE-CLIENT-NAME>.scopes |
azure.activedirectory.b2c.app-id-uri |
spring.cloud.azure.active-directory.b2c.app-id-uri |
azure.activedirectory.b2c.base-uri |
spring.cloud.azure.active-directory.b2c.base-uri |
azure.activedirectory.b2c.client-id |
spring.cloud.azure.active-directory.b2c.credential.client-id |
azure.activedirectory.b2c.client-secret |
spring.cloud.azure.active-directory.b2c.credential.client-secret |
azure.activedirectory.b2c.jwt-connect-timeout |
spring.cloud.azure.active-directory.b2c.jwt-connect-timeout |
azure.activedirectory.b2c.jwt-read-timeout |
spring.cloud.azure.active-directory.b2c.jwt-read-timeout |
azure.activedirectory.b2c.jwt-size-limit |
spring.cloud.azure.active-directory.b2c.jwt-size-limit |
azure.activedirectory.b2c.login-flow |
spring.cloud.azure.active-directory.b2c.login-flow |
azure.activedirectory.b2c.logout-success-url |
spring.cloud.azure.active-directory.b2c.logout-success-url |
azure.activedirectory.b2c.reply-url |
spring.cloud.azure.active-directory.b2c.reply-url |
azure.activedirectory.b2c.tenant-id |
spring.cloud.azure.active-directory.b2c.profile.tenant-id |
azure.activedirectory.b2c.user-flows |
spring.cloud.azure.active-directory.b2c.user-flows |
azure.activedirectory.b2c.user-name-attribute-name |
spring.cloud.azure.active-directory.b2c.user-name-attribute-name |
Properti yang dihapus dari
azure-spring-boot-starter-active-directory-b2c:azure.activedirectory.b2c.allow-telemetryazure.activedirectory.b2c.tenant
Jenis nilai properti berikut diubah dari
longmenjadiDuration:jwt-connect-timeoutjwt-read-timeout
Perubahan API
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-boot-starter-active-directory-b2c ke spring-cloud-azure-starter-active-directory-b2c:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.autoconfigure.b2c.AADB2CAuthorizationRequestResolver |
com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cAuthorizationRequestResolver |
com.azure.spring.autoconfigure.b2c.AADB2CJwtBearerTokenAuthenticationConverter |
com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter |
com.azure.spring.autoconfigure.b2c.AADB2CLogoutSuccessHandler |
com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cLogoutSuccessHandler |
com.azure.spring.autoconfigure.b2c.AADB2COidcLoginConfigurer |
com.azure.spring.cloud.autoconfigure.aadb2c.AadB2COidcLoginConfigurer |
com.azure.spring.autoconfigure.b2c.AADB2CProperties |
com.azure.spring.cloud.autoconfigure.aadb2c.properties.AadB2cProperties |
com.azure.spring.autoconfigure.b2c.AADB2CTrustedIssuerRepository |
com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cTrustedIssuerRepository |
com.azure.spring.autoconfigure.b2c.AuthorizationClientProperties |
com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties |
Dari azure-spring-boot-starter-cosmos ke spring-cloud-azure-starter-data-cosmos
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-data-cosmos dari versi 3 dari azure-spring-boot-starter-cosmos.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Semua nama properti konfigurasi mengubah awalan dari azure.cosmos menjadi spring.cloud.azure.cosmos.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-boot-starter-cosmos ke spring-cloud-azure-starter-data-cosmos:
| Properti warisan | Properti modern |
|---|---|
azure.cosmos.connection-mode |
spring.cloud.azure.cosmos.connection-mode |
azure.cosmos.consistency-level |
spring.cloud.azure.cosmos.consistency-level |
azure.cosmos.database |
spring.cloud.azure.cosmos.database |
azure.cosmos.key |
spring.cloud.azure.cosmos.key |
azure.cosmos.populate-query-metrics |
spring.cloud.azure.cosmos.populate-query-metrics |
azure.cosmos.uri |
spring.cloud.azure.cosmos.endpoint |
Dari azure-spring-boot-starter-keyvault-secrets ke spring-cloud-azure-starter-keyvault-secrets
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-keyvault-secrets dari versi 3 dari azure-spring-boot-starter-keyvault-secrets.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Bagian ini mencakup perubahan tentang properti yang ditambahkan, dihapus, dan diubah.
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-boot-starter-keyvault-secrets ke spring-cloud-azure-starter-keyvault-secrets:
| Properti warisan | Properti modern |
|---|---|
azure.keyvault.case-sensitive-keys |
spring.cloud.azure.keyvault.secret.property-source[n].case-sensitive |
azure.keyvault.certificate-password |
spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password |
azure.keyvault.certificate-path |
spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path |
azure.keyvault.client-id |
spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id |
azure.keyvault.client-key |
spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret |
azure.keyvault.enabled |
spring.cloud.azure.keyvault.secret.property-source-enabled dan spring.cloud.azure.keyvault.secret.property-source-enabled |
azure.keyvault.order |
Tidak lagi didukung. Gunakan urutan sebagai property-source[n] gantinya. |
azure.keyvault.refresh-interval |
spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval |
azure.keyvault.secret-keys |
spring.cloud.azure.keyvault.secret.property-source[n].secret-keys |
azure.keyvault.tenant-id |
spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id |
azure.keyvault.uri |
spring.cloud.azure.keyvault.secret.property-source[n].endpoint |
Properti yang dihapus dari
spring-cloud-azure-starter-keyvault-secrets:azure.keyvault.allow-telemetryazure.keyvault.order
Poin-poin berikut yang harus Anda perhatikan:
- Semua nama properti konfigurasi mengubah awalan dari
azure.keyvaultmenjadispring.cloud.azure.keyvault.secret. -
spring.cloud.azure.keyvault.secret.enableddigunakan untuk mengaktifkan semua fitur Rahasia Key Vault, termasuk mengonfigurasi Key Vault biji klien rahasia (sepertiSecretClientdanSecretAsyncClient) dan menambahkanKeyVaultPropertySourcediConfigurableEnvironment. -
spring.cloud.azure.keyvault.secret.property-source-enableddigunakan untuk mengaktifkan semuaKeyVaultPropertySource. Ini akan berlaku hanya ketikaspring.cloud.azure.keyvault.secret.enabled=true. - Untuk properti umum Azure(seperti
client,proxy,retry,credential,profile) dan properti Key Vault(seperti propertiendpoint,service-version). Jikaspring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAMEtidak dikonfigurasi,spring.cloud.azure.keyvault.secret.PROPERTY_NAMEakan digunakan. -
spring.cloud.azure.keyvault.secret.property-sources[n].resourcekhusus untuk sumber daya Azure unik, jadi jika tidak dikonfigurasi, sumber daya tersebut tidak akan mendapatkan nilai dari tempat lain.
Dari azure-spring-boot-starter-servicebus-jms ke spring-cloud-azure-starter-servicebus-jms
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-servicebus-jms dari versi 3 dari azure-spring-boot-starter-servicebus-jms.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Jenis konfigurasi untuk spring.jms.servicebus.idle-timeout diubah dari long (milidetik) ke Duration pola untuk keterbacaan.
Dari azure-spring-boot-starter-storage ke spring-cloud-azure-starter-storage-blob
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-storage-blob dari versi 3 dari azure-spring-boot-starter-storage.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Semua nama properti konfigurasi mengubah awalan dari azure.storage menjadi spring.cloud.azure.storage.blob.
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-boot-starter-storage ke spring-cloud-azure-starter-storage-blob:
| Properti warisan | Properti modern |
|---|---|
azure.storage.account-name |
spring.cloud.azure.storage.blob.account-name |
azure.storage.account-key |
spring.cloud.azure.storage.blob.account-key |
azure.storage.blob-endpoint |
spring.cloud.azure.storage.blob.endpoint |
Perubahan API
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-boot-starter-storage ke spring-cloud-azure-starter-storage-blob:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver |
com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.BlobStorageResource |
com.azure.spring.core.resource.StorageBlobResource |
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver |
com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
Dari azure-spring-boot-starter-storage ke spring-cloud-azure-starter-storage-file-share
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-storage-file-share dari versi 3 dari azure-spring-boot-starter-storage.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Semua nama properti konfigurasi mengubah awalan dari azure.storage menjadi spring.cloud.azure.storage.fileshare.
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-boot-starter-storage ke spring-cloud-azure-starter-storage-file-share:
| Properti warisan | Properti modern |
|---|---|
azure.storage.account-name |
spring.cloud.azure.storage.fileshare.account-name |
azure.storage.account-key |
spring.cloud.azure.storage.fileshare.account-key |
azure.storage.file-endpoint |
spring.cloud.azure.storage.fileshare.endpoint |
Perubahan API
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-boot-starter-storage ke spring-cloud-azure-starter-storage-file-share:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver |
com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.FileStorageResource |
com.azure.spring.core.resource.StorageFileResource |
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver |
com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
Dari azure-spring-cloud-starter-eventhubs ke spring-cloud-azure-starter-integration-eventhubs
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-integration-eventhubs dari versi 2 dari azure-spring-cloud-starter-eventhubs.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Penting
Awalan konfigurasi telah diubah dari spring.cloud.azure.eventhub ke spring.cloud.azure.eventhubs.
Untuk perubahan entri anak untuk awalan ini, lihat tabel berikut:
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-cloud-starter-eventhubs ke spring-cloud-azure-starter-integration-eventhubs:
| Properti warisan | Properti modern |
|---|---|
spring.cloud.azure.resource-group |
spring.cloud.azure.eventhubs.resource.resource-group |
spring.cloud.azure.eventhub.namespace |
spring.cloud.azure.eventhubs.namespace |
spring.cloud.azure.eventhub.connection-string |
spring.cloud.azure.eventhubs.connection-string |
spring.cloud.azure.eventhub.checkpoint-storage-account |
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name |
spring.cloud.azure.eventhub.checkpoint-access-key |
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
spring.cloud.azure.eventhub.checkpoint-container |
spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
Misalnya, ubah dari:
spring:
cloud:
azure:
eventhub:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
ke:
spring:
cloud:
azure:
eventhubs:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
processor:
checkpoint-store:
container-name: ${AZURE_STORAGE_CONTAINER_NAME}
account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
Nota
Microsoft merekomendasikan penggunaan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini, seperti untuk database, cache, olahpesan, atau layanan AI, memerlukan tingkat kepercayaan yang sangat tinggi dalam aplikasi dan membawa risiko yang tidak ada dalam alur lain. Gunakan alur ini hanya ketika opsi yang lebih aman, seperti identitas terkelola untuk koneksi tanpa kata sandi atau tanpa kunci, tidak layak. Untuk operasi komputer lokal, lebih suka identitas pengguna untuk koneksi tanpa kata sandi atau tanpa kunci.
Perubahan API
- Untuk perubahan pada anotasi pendengar, lihat panduan migrasi pustaka<< migrasi >>-azure-spring-cloud-messaging, azure-spring-cloud-messaging.
- Jatuhkan
EventHubOperationdengan fungsi berlangganan dipindahkan keEventHubsMessageListenerContainerkelas dan fungsi pengiriman dipindahkan keEventHubsTemplate. - Ganti nama
EventHubInboundChannelAdaptersebagaiEventHubsInboundChannelAdapteragar tetap konsisten dengan layanan Azure Event Hubs. - Ubah konstruktor dari
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)menjadiEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)danEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Ubah gaya instansiasi
CheckpointConfigke konstruktor sederhana alih-alih gaya build. - Hilangkan API
EventHubOperation#setCheckpointConfig. Untuk mengatur konfigurasi titik pemeriksaan untuk adaptor saluran masuk, pengguna dapat memanggil metodeEventHubsContainerProperties#setCheckpointConfig. - Hilangkan API
EventHubOperation#setBatchConsumerConfig. Untuk mengatur konfigurasi yang menggunakan batch untuk adaptor saluran masuk, pengguna dapat memanggil dua metodeEventHubsContainerProperties#getBatch#setMaxSizedanEventHubsContainerProperties#getBatch#setMaxWaitTimesementara itu. - Untuk mode penggunaan batch, ubah nama header pesan yang dikonversi dari pesan batch.
- Ubah header pesan dari
azure_eventhub_enqueued_timemenjadiazure_eventhubs_batch_converted_enqueued_time. - Ubah header pesan dari
azure_eventhub_offsetmenjadiazure_eventhubs_batch_converted_offset. - Ubah header pesan dari
azure_eventhub_sequence_numbermenjadiazure_eventhubs_batch_converted_sequence_number. - Ubah header pesan dari
azure_partition_keymenjadiazure_batch_converted_partition_key.
- Ubah header pesan dari
- Saat menerbitkan pesan ke Azure Event Hubs, abaikan semua header pesan yang dikonversi dari pesan batch. Header meliputi:
- azure_batch_converted_partition_key
- azure_eventhubs_batch_converted_enqueued_time
- azure_eventhubs_batch_converted_offset
- azure_eventhubs_batch_converted_sequence_number
- azure_eventhubs_batch_converted_system_properties
- azure_eventhubs_batch_converted_application_properties
- Mode titik pemeriksaan
BATCHhanya berfungsi dalam mode penggunaan batch sekarang, yang dapat diaktifkan dengan meneruskanListenerMode.BATCHke konstruktor EventHubsInboundChannelAdapter.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-cloud-starter-eventhubs ke spring-cloud-azure-starter-integration-eventhubs:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.core.EventHubHeaders |
com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
com.azure.spring.integration.core.api.CheckpointConfig |
com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig |
com.azure.spring.integration.core.api.CheckpointMode |
com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
com.azure.spring.integration.core.api.reactor.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter |
com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Cuplikan kode sampel
EventHubsInboundChannelAdapterkode sampel:Kode warisan:
public class Demo { @Bean public EventHubInboundChannelAdapter messageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubOperation eventhubOperation) { eventhubOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode (CheckpointMode.MANUAL).build()); EventHubInboundChannelAdapter adapter = new EventHubInboundChannelAdapter("EVENTHUB_NAME", eventhubOperation, "CONSUMER_GROUP"); adapter.setOutputChannel(inputChannel); return adapter; } }Kode modern:
public class Demo { @Bean public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) { EventHubsContainerProperties containerProperties = new EventHubsContainerProperties(); containerProperties.setEventHubName("EVENTHUB_NAME"); containerProperties.setConsumerGroup("CONSUMER_GROUP"); CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL); containerProperties.setCheckpointConfig(config); return new EventHubsMessageListenerContainer(processorFactory, containerProperties); } @Bean public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubsMessageListenerContainer listenerContainer) { EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } }DefaultMessageHandlerkode sampel:Kode warisan:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL") public MessageHandler messageSender(EventHubOperation eventhubOperation) { DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.error("There was an error sending the message.", ex); } }); return handler; } }Kode modern:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL") public MessageHandler messageSender(EventHubsTemplate eventhubOperation) { DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.error("There was an error sending the message.", ex); } }); return handler; } }
Dari azure-spring-integration-eventhubs ke spring-integration-azure-eventhubs
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-integration-azure-eventhubs dari versi 2 dari azure-spring-integration-eventhubs.
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
Perubahan API
- Jatuhkan
EventHubOperationdengan fungsi berlangganan dipindahkan keEventHubsMessageListenerContainerkelas dan fungsi pengiriman dipindahkan keEventHubsTemplate. - Ganti nama
EventHubInboundChannelAdaptersebagaiEventHubsInboundChannelAdapteragar tetap konsisten dengan layanan Azure Event Hubs. - Ubah konstruktor dari
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)menjadiEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)danEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Ubah gaya instansiasi
CheckpointConfigke konstruktor sederhana alih-alih gaya build. - Hilangkan API
EventHubOperation#setCheckpointConfig. Untuk mengatur konfigurasi titik pemeriksaan untuk adaptor saluran masuk, pengguna dapat memanggil metodeEventHubsContainerProperties#setCheckpointConfig. - Hilangkan API
EventHubOperation#setBatchConsumerConfig. Untuk mengatur konfigurasi yang menggunakan batch untuk adaptor saluran masuk, pengguna dapat memanggil dua metodeEventHubsContainerProperties#getBatch#setMaxSizedanEventHubsContainerProperties#getBatch#setMaxWaitTimesementara itu. - Untuk mode penggunaan batch, ubah nama header pesan yang dikonversi dari pesan batch.
- Ubah header pesan dari
azure_eventhub_enqueued_timemenjadiazure_eventhubs_batch_converted_enqueued_time. - Ubah header pesan dari
azure_eventhub_offsetmenjadiazure_eventhubs_batch_converted_offset. - Ubah header pesan dari
azure_eventhub_sequence_numbermenjadiazure_eventhubs_batch_converted_sequence_number. - Ubah header pesan dari
azure_partition_keymenjadiazure_batch_converted_partition_key.
- Ubah header pesan dari
- Saat menerbitkan pesan ke Azure Event Hubs, abaikan semua header pesan yang dikonversi dari pesan batch. Header meliputi:
- azure_batch_converted_partition_key
- azure_eventhubs_batch_converted_enqueued_time
- azure_eventhubs_batch_converted_offset
- azure_eventhubs_batch_converted_sequence_number
- azure_eventhubs_batch_converted_system_properties
- azure_eventhubs_batch_converted_application_properties
- Mode titik pemeriksaan
BATCHhanya berfungsi dalam mode penggunaan batch sekarang, yang dapat diaktifkan dengan meneruskanListenerMode.BATCHke konstruktor EventHubsInboundChannelAdapter.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-integration-eventhubs ke spring-integration-azure-eventhubs:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.core.EventHubHeaders |
com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
com.azure.spring.integration.core.api.CheckpointConfig |
com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig |
com.azure.spring.integration.core.api.CheckpointMode |
com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
com.azure.spring.integration.core.api.reactor.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter |
com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Dari azure-spring-cloud-starter-servicebus ke spring-cloud-azure-starter-integration-servicebus
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-integration-servicebus dari versi 2 dari azure-spring-cloud-starter-servicebus.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Untuk semua opsi konfigurasi yang didukung di spring-cloud-azure-starter-integration-servicebus, awalan tetap sebagai spring.cloud.azure.servicebus.
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-cloud-starter-servicebus ke spring-cloud-azure-starter-integration-servicebus:
| Properti warisan | Properti modern |
|---|---|
spring.cloud.azure.resource-group |
spring.cloud.azure.servicebus.resource.resource-group |
spring.cloud.azure.servicebus.transport-type |
spring.cloud.azure.servicebus.client.transport-type |
spring.cloud.azure.servicebus.retry-options.retry-mode |
spring.cloud.azure.servicebus.retry.mode |
spring.cloud.azure.servicebus.retry-options.max-retries |
spring.cloud.azure.servicebus.retry.exponential.max-retriesatau spring.cloud.azure.servicebus.retry.fixed.max-retries, harus dikonfigurasi tergantung padaspring.cloud.azure.servicebus.retry.mode = fixed atauexponential |
spring.cloud.azure.servicebus.retry-options.delay |
spring.cloud.azure.servicebus.retry.exponential.base-delayatau spring.cloud.azure.servicebus.retry.fixed.delay, harus dikonfigurasi tergantung padaspring.cloud.azure.servicebus.retry.mode = fixed atauexponential |
spring.cloud.azure.servicebus.retry-options.max-delay |
spring.cloud.azure.servicebus.retry.exponential.max-delay |
spring.cloud.azure.servicebus.retry-options.try-timeout |
spring.cloud.azure.servicebus.retry.try-timeout |
Perubahan API
- Jatuhkan
ServiceBusQueueOperationdanServiceBusTopicOperationdengan fungsi berlangganan dipindahkan keServiceBusMessageListenerContainerkelas dan fungsi pengiriman dipindahkan keServiceBusTemplate. - Jatuhkan
ServiceBusQueueInboundChannelAdapterdanServiceBusTopicInboundChannelAdapter, dan pindahkan fungsionalitas untuk mendengarkan entitas antrean/topik Bus Layanan ke ServiceBusInboundChannelAdapter. - Ubah konstruktor dari
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)menjadiServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)danServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Ubah konstruktor dari
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)menjadiServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)danServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Hilangkan API
ServiceBusQueueOperation#setCheckpointConfigdanServiceBusTopicOperation#setCheckpointConfig. Untuk mengatur konfigurasi titik pemeriksaan untuk adaptor saluran masuk, pengguna dapat memanggil metodeServiceBusContainerProperties#setAutoCompletesebagai gantinya. Untuk menonaktifkan mode lengkapi otomatis setara dengan mode titik pemeriksaanMANUALdan untuk mengaktifkannya akan memicu modeRECORD. - Hilangkan API
ServiceBusQueueOperatio#setClientConfigdanServiceBusTopicOperation#setClientConfig. Untuk mengonfigurasiServiceBusProcessorClientyang mendasar yang digunakan oleh adaptor saluran masuk, pengguna dapat menggunakanServiceBusContainerPropertiessebagai gantinya. - Hilangkan dukungan
CompletableFuturediServiceBusTemplatedanDefaultMessageHandler, dukungReactorsebagai gantinya. - Tambahkan API baru
ServiceBusTemplate#setDefaultEntityTypeuntuk menentukan jenis entitas, yang diperlukan ketika tidak ada kacangPropertiesSupplier<String, ProducerProperties>yang disediakan untukProducerProperties#entityType. - Jatuhkan header pesan
AzureHeaders.RAW_ID. GunakanServiceBusMessageHeaders.MESSAGE_IDsebagai gantinya.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-cloud-starter-servicebus ke spring-cloud-azure-starter-integration-servicebus:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders |
com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter |
com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
com.azure.spring.integration.core.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
Cuplikan kode sampel
ServiceBusInboundChannelAdapterkode sampel:Kode warisan menggunakan
ServiceBusQueueInboundChannelAdapteratauServiceBusTopicInboundChannelAdapter:public class Demo { @Bean public ServiceBusQueueInboundChannelAdapter queueMessageChannelAdapter( @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusQueueOperation queueOperation) { queueOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build()); ServiceBusQueueInboundChannelAdapter adapter = new ServiceBusQueueInboundChannelAdapter("QUEUE_NAME", queueOperation); adapter.setOutputChannel(inputChannel); return adapter; } @Bean public ServiceBusTopicInboundChannelAdapter topicMessageChannelAdapter( @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusTopicOperation topicOperation) { topicOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build()); ServiceBusTopicInboundChannelAdapter adapter = new ServiceBusTopicInboundChannelAdapter("TOPIC_NAME", topicOperation, "SUBSCRIPTION_NAME"); adapter.setOutputChannel(inputChannel); return adapter; } }Kode modern:
public class Demo { @Bean("queue-listener-container") public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) { ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties(); containerProperties.setEntityName("QUEUE_NAME"); containerProperties.setAutoComplete(false); return new ServiceBusMessageListenerContainer(processorFactory, containerProperties); } @Bean public ServiceBusInboundChannelAdapter queueMessageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, @Qualifier("queue-listener-container") ServiceBusMessageListenerContainer listenerContainer) { ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } @Bean("topic-listener-container") public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) { ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties(); containerProperties.setEntityName("TOPIC_NAME"); containerProperties.setSubscriptionName("SUBSCRIPTION_NAME"); containerProperties.setAutoComplete(false); return new ServiceBusMessageListenerContainer(processorFactory, containerProperties); } @Bean public ServiceBusInboundChannelAdapter topicMessageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, @Qualifier("topic-listener-container") ServiceBusMessageListenerContainer listenerContainer) { ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } }DefaultMessageHandlerkode sampel:Kode warisan, mengambil antrean sebagai contoh:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME") public MessageHandler queueMessageSender(ServiceBusQueueOperation queueOperation) { DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", queueOperation); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.info("There was an error sending the message."); } }); return handler; } }Kode modern:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME") public MessageHandler queueMessageSender(ServiceBusTemplate serviceBusTemplate) { serviceBusTemplate.setDefaultEntityType(ServiceBusEntityType.QUEUE); DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", serviceBusTemplate); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully for {}.", "QUEUE_NAME"); } @Override public void onFailure(Throwable ex) { LOGGER.info("There was an error sending the message."); } }); return handler; } }
Dari azure-spring-integration-servicebus ke spring-integration-azure-servicebus
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-integration-azure-servicebus dari versi 2 dari azure-spring-integration-servicebus.
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
Perubahan API
- Jatuhkan
ServiceBusQueueOperationdanServiceBusTopicOperationdengan fungsi berlangganan dipindahkan keServiceBusMessageListenerContainerkelas dan fungsi pengiriman dipindahkan keServiceBusTemplate. - Jatuhkan
ServiceBusQueueInboundChannelAdapterdanServiceBusTopicInboundChannelAdapter, dan pindahkan fungsionalitas untuk mendengarkan entitas antrean/topik Bus Layanan ke ServiceBusInboundChannelAdapter. - Ubah konstruktor dari
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)menjadiServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)danServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Ubah konstruktor dari
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)menjadiServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)danServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Hilangkan API
ServiceBusQueueOperation#setCheckpointConfigdanServiceBusTopicOperation#setCheckpointConfig. Untuk mengatur konfigurasi titik pemeriksaan untuk adaptor saluran masuk, pengguna dapat memanggil metodeServiceBusContainerProperties#setAutoCompletesebagai gantinya. Untuk menonaktifkan mode lengkapi otomatis setara dengan mode titik pemeriksaanMANUALdan untuk mengaktifkannya akan memicu modeRECORD. - Hilangkan API
ServiceBusQueueOperation#setClientConfigdanServiceBusTopicOperation#setClientConfig. Untuk mengonfigurasiServiceBusProcessorClientyang mendasar yang digunakan oleh adaptor saluran masuk, pengguna dapat menggunakanServiceBusContainerPropertiessebagai gantinya. - Hilangkan dukungan
CompletableFuturediServiceBusTemplatedanDefaultMessageHandler, dukungReactorsebagai gantinya. - Tambahkan API baru
ServiceBusTemplate#setDefaultEntityTypeuntuk menentukan jenis entitas, yang diperlukan ketika tidak ada kacangPropertiesSupplier<String, ProducerProperties>yang disediakan untukProducerProperties#entityType. - Jatuhkan header pesan
AzureHeaders.RAW_ID. GunakanServiceBusMessageHeaders.MESSAGE_IDsebagai gantinya.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-integration-servicebus ke spring-integration-azure-servicebus:
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders |
com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter |
com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
com.azure.spring.integration.core.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
Dari azure-spring-cloud-starter-storage-queue ke spring-cloud-azure-starter-integration-storage-queue
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-starter-integration-storage-queue dari versi 2 dari azure-spring-cloud-starter-storage-queue.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Semua nama properti konfigurasi mengubah awalan dari spring.cloud.azure.storage menjadi spring.cloud.azure.storage.queue.
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-cloud-starter-storage-queue ke spring-cloud-azure-starter-integration-storage-queue:
| Properti warisan | Properti modern |
|---|---|
spring.cloud.azure.storage.account |
spring.cloud.azure.storage.queue.account-name |
spring.cloud.azure.storage.access-key |
spring.cloud.azure.storage.queue.account-key |
spring.cloud.azure.storage.resource-group |
spring.cloud.azure.storage.queue.resource.resource-group |
Perubahan API
- Hilangkan
StorageQueueOperationdan berikanStorageQueueTemplatesebagai gantinya. - Hilangkan konfigurasi
checkpoint-modediStorageQueueTemplate, hanya mendukung modeMANUAL.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-cloud-starter-storage-queue ke spring-cloud-azure-starter-integration-storage-queue.
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter |
com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue.StorageQueueTemplate |
com.azure.spring.storage.queue.core.StorageQueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
Dari azure-spring-integration-storage-queue ke spring-integration-azure-storage-queue
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-integration-azure-storage-queue dari versi 2 dari azure-spring-integration-storage-queue.
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
Perubahan API
- Hilangkan
StorageQueueOperationdan berikanStorageQueueTemplatesebagai gantinya. - Hilangkan konfigurasi
checkpoint-modediStorageQueueTemplate, hanya mendukung modeMANUAL.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-integration-storage-queue ke spring-integration-azure-storage-queue.
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter |
com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue.StorageQueueTemplate |
com.azure.spring.storage.queue.core.StorageQueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler |
com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
Dari azure-spring-cloud-stream-binder-eventhubs ke spring-cloud-azure-stream-binder-eventhubs
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-stream-binder-eventhubs dari versi 2 dari azure-spring-cloud-stream-binder-eventhubs.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Penting
Awalan konfigurasi telah diubah dari spring.cloud.azure.eventhub ke spring.cloud.azure.eventhubs.
Penting
Jenis pengikat diganti namanya dari: eventhub menjadi eventhubs.
Untuk perubahan entri anak untuk awalan berikut, lihat tabel berikut ini.
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-cloud-stream-binder-eventhubs ke spring-cloud-azure-stream-binder-eventhubs:
| Properti warisan | Properti modern |
|---|---|
spring.cloud.azure.resource-group |
spring.cloud.azure.eventhubs.resource.resource-group |
spring.cloud.azure.eventhub.namespace |
spring.cloud.azure.eventhubs.namespace |
spring.cloud.azure.eventhub.connection-string |
spring.cloud.azure.eventhubs.connection-string |
spring.cloud.azure.eventhub.checkpoint-storage-account |
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name |
spring.cloud.azure.eventhub.checkpoint-access-key |
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
spring.cloud.azure.eventhub.checkpoint-container |
spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size |
spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time |
spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode |
spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count |
spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval |
spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position |
spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Nota
Jenis nilai konfigurasi start-position juga diubah dari enum com.azure.spring.integration.core.api.StartPosition menjadi mapStartPositionProperties untuk setiap partisi. Dengan demikian, kuncinya adalah ID partisi, dan nilainya adalah com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties yang mencakup properti offset, nomor urutan, waktu tanggal antrean, dan apakah inklusif.
Contoh migrasi konfigurasi
Untuk menggunakan string koneksi untuk autentikasi dan memigrasikan properti yang disebutkan di atas, perubahan konfigurasi dicantumkan sebagai berikut:
Konfigurasi warisan:
spring:
cloud:
azure:
eventhub:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
stream:
eventhub:
bindings:
<binding-name>:
consumer:
max-batch-size: ${AZURE_MAX_BATCH_SIZE}
max-wait-time: ${AZURE_MAX_WAIT_TIME}
checkpoint-mode: ${AZURE_CHECKPOINT_MODE}
checkpoint-count: ${AZURE_CHECKPOINT_COUNT}
checkpoint-interval: ${AZURE_CHECKPOINT_INTERVAL}
start-position: EARLIEST
Konfigurasi modern:
spring:
cloud:
azure:
eventhubs:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
processor:
checkpoint-store:
container-name: ${AZURE_STORAGE_CONTAINER_NAME}
account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
stream:
eventhubs:
bindings:
<binding-name>:
consumer:
batch:
max-size: ${AZURE_MAX_BATCH_SIZE}
max-wait-time: ${AZURE_MAX_WAIT_TIME}
checkpoint:
mode: ${AZURE_CHECKPOINT_MODE}
count: ${AZURE_CHECKPOINT_COUNT}
interval: ${AZURE_CHECKPOINT_INTERVAL}
initial-partition-event-position:
0:
offset: earliest
1:
sequence-number: 100
2:
enqueued-date-time: 2022-01-12T13:32:47.650005Z
4:
inclusive: false
Nota
Microsoft merekomendasikan penggunaan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini, seperti untuk database, cache, olahpesan, atau layanan AI, memerlukan tingkat kepercayaan yang sangat tinggi dalam aplikasi dan membawa risiko yang tidak ada dalam alur lain. Gunakan alur ini hanya ketika opsi yang lebih aman, seperti identitas terkelola untuk koneksi tanpa kata sandi atau tanpa kunci, tidak layak. Untuk operasi komputer lokal, lebih suka identitas pengguna untuk koneksi tanpa kata sandi atau tanpa kunci.
Jika Anda menggunakan prinsip keamanan alih-alih string koneksi, dalam versi sebelum 4.0 aplikasi pertama-tama akan terhubung ke Azure Resource Manager (ARM) dengan prinsip keamanan yang disediakan, lalu mengambil string koneksi namespace yang ditentukan dengan ARM. Pada akhirnya aplikasi menggunakan string koneksi yang diambil untuk terhubung ke Azure Event Hubs. Dengan cara ini, prinsip keamanan yang disediakan harus diberikan dengan peran Contributor untuk mengambil namespace Azure Event Hubs terkait.
Untuk Azure Spring Apps 4.0, kami menyediakan dua cara untuk memanfaatkan prinsip keamanan untuk autentikasi. Seseorang masih menggunakan prinsipal untuk terhubung ke ARM dan mengambil string koneksi di mana peran Contributor diperlukan untuk prinsipal. Yang lain memanfaatkan prinsip keamanan untuk mengautentikasi ke Microsoft Entra ID dan kemudian terhubung ke Azure Event Hubs secara langsung. Dalam hal ini, peran Contributor tidak diperlukan lagi, sementara peran terkait Data lainnya diperlukan untuk operasi olahpesan. Untuk memastikan prinsip keamanan telah diberikan izin yang memadai untuk mengakses sumber daya Azure, lihat Authorize akses dengan Microsoft Entra ID.
Untuk autentikasi berdasarkan ARM, mengambil perwakilan layanan sebagai contoh, migrasi konfigurasi tercantum sebagai berikut, di mana peran yang ditetapkan tidak boleh berubah:
Konfigurasi warisan:
spring:
cloud:
azure:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
tenant-id: <tenant>
resource-group: ${EVENTHUB_RESOURCE_GROUP}
eventhub:
namespace: ${EVENTHUB_NAMESPACE}
Nota
Nilai yang diizinkan untuk tenant-id adalah: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang mengonversi aplikasi penyewa tunggal Anda, lihat aplikasi penyewa tunggal Convert ke multitenant pada Microsoft Entra ID.
Konfigurasi modern, properti untuk ID langganan Azure dan grup sumber daya diperlukan:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
eventhubs:
namespace: ${EVENTHUB_NAMESPACE}
resource:
resource-group: ${RESOURCE_GROUP}
Nota
Nilai yang diizinkan untuk tenant-id adalah: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang mengonversi aplikasi penyewa tunggal Anda, lihat aplikasi penyewa tunggal Convert ke multitenant pada Microsoft Entra ID.
Anda juga dapat bermigrasi untuk mengautentikasi dan mengotorisasi dengan Microsoft Entra ID secara langsung tanpa melakukan memutar ke ARM. Pastikan untuk memberikan peran Data yang diperlukan perwakilan keamanan untuk operasi olahpesan. Contoh konfigurasi perwakilan layanan dan identitas terkelola tercantum sebagai berikut:
Dengan perwakilan layanan
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Nota
Nilai yang diizinkan untuk tenant-id adalah: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang mengonversi aplikasi penyewa tunggal Anda, lihat aplikasi penyewa tunggal Convert ke multitenant pada Microsoft Entra ID.
Dengan identitas terkelola
spring: cloud: azure: credential: managed-identity-enabled: true client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Perubahan API
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-cloud-stream-binder-eventhubs ke spring-cloud-azure-stream-binder-eventhubs.
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.api.reactor.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.core.EventHubHeaders |
com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
Dari azure-spring-cloud-stream-binder-servicebus-* ke spring-cloud-azure-stream-binder-servicebus
Panduan ini dimaksudkan untuk membantu dalam migrasi ke spring-cloud-azure-stream-binder-servicebus dari versi 2 atau azure-spring-cloud-stream-binder-servicebus-queueazure-spring-cloud-stream-binder-servicebus-topic.
Untuk informasi umum, gunakan tautan berikut:
- Untuk gambaran umum perubahan di 4.0, lihat bagian
Pengenalan dan Migrasi. - Untuk mempelajari selengkapnya tentang perubahan strategi dalam penamaan proyek, lihat bagian perubahan penamaan .
- Untuk mempelajari cara menggunakan satu BOM untuk semua pustaka Azure Spring Cloud, lihat bagian BOM.
- Untuk mempelajari cara menangani autentikasi di Spring Cloud Azure 4.0, lihat bagian perubahan Autentikasi.
- Untuk mempelajari cara memanfaatkan
spring-boot-properties-migratorselama migrasi, lihat bagian Mengonfigurasi setiap SDK. - Untuk mempelajari selengkapnya tentang perubahan konfigurasi global dan umum, lihat bagian konfigurasi global
.
Perubahan konfigurasi SDK
Penting
Libaries binder warisan azure-spring-cloud-stream-binder-servicebus-queue dan azure-spring-cloud-stream-binder-servicebus-topic, dan sekarang mereka digabungkan menjadi satu spring-cloud-azure-stream-binder-servicebus.
Penting
Jenis pengikat digabungkan dari servicebus-queue dan servicebus-topic sebagai servicebus.
Tabel berikut mencantumkan properti konfigurasi baru spring-cloud-azure-stream-binder-servicebus:
| Properti modern | Deskripsi |
|---|---|
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type |
Jika Anda menggunakan fungsi pengiriman, Anda perlu mengatur jenis entitas, yang dapat Anda atur ke topik atau antrean. |
Tabel berikut ini memperlihatkan pemetaan properti dari azure-spring-cloud-stream-binder-servicebus-* ke spring-cloud-azure-stream-binder-servicebus:
| Properti warisan | Properti modern |
|---|---|
spring.cloud.azure.resource-group |
spring.cloud.azure.servicebus.resource.resource-group |
spring.cloud.azure.servicebus.transport-type |
spring.cloud.azure.servicebus.client.transport-type |
spring.cloud.azure.servicebus.retry-options.retry-mode |
spring.cloud.azure.servicebus.retry.mode |
spring.cloud.azure.servicebus.retry-options.max-retries |
spring.cloud.azure.servicebus.retry.exponential.max-retriesatau spring.cloud.azure.servicebus.retry.fixed.max-retries, harus dikonfigurasi tergantung padaspring.cloud.azure.servicebus.retry.mode = fixed atauexponential |
spring.cloud.azure.servicebus.retry-options.delay |
spring.cloud.azure.servicebus.retry.exponential.base-delayatau spring.cloud.azure.servicebus.retry.fixed.delay, harus dikonfigurasi tergantung padaspring.cloud.azure.servicebus.retry.mode = fixed atauexponential |
spring.cloud.azure.servicebus.retry-options.max-delay |
spring.cloud.azure.servicebus.retry.exponential.max-delay |
spring.cloud.azure.servicebus.retry-options.try-timeout |
spring.cloud.azure.servicebus.retry.try-timeout |
spring.cloud.stream.servicebus.queue.bindings.* |
spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.concurrency |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions / max-concurrent-calls |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.checkpoint-mode |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete |
spring.cloud.stream.servicebus.topic.bindings.* |
spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.concurrency |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions / max-concurrent-calls |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.checkpoint-mode |
spring.cloud.stream.servicebus.bindings.binding-name.consumer.auto-complete |
Nota
Properti konkurensi akan digantikan oleh maxConcurrentSessions ketika sessionsEnabled true dan maxConcurrentCalls ketika sessionsEnabled false.
Nota
Mengaktifkan auto-complete sama dengan mode titik pemeriksaan RECORD, dan sebaliknya mode MANUAL.
Contoh migrasi konfigurasi
Konfigurasi warisan, mengambil antrean sebagai contoh:
spring:
cloud:
azure:
servicebus:
connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
stream:
function:
definition: consume;supply
bindings:
consume-in-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
supply-out-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
servicebus:
queue:
bindings:
consume-in-0:
consumer:
checkpoint-mode: MANUAL
Konfigurasi modern:
spring:
cloud:
azure:
servicebus:
connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
stream:
function:
definition: consume;supply
bindings:
consume-in-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
supply-out-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
servicebus:
bindings:
consume-in-0:
consumer:
auto-complete: false
supply-out-0:
producer:
entity-type: queue #set as topic if needed
Nota
Microsoft merekomendasikan penggunaan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini, seperti untuk database, cache, olahpesan, atau layanan AI, memerlukan tingkat kepercayaan yang sangat tinggi dalam aplikasi dan membawa risiko yang tidak ada dalam alur lain. Gunakan alur ini hanya ketika opsi yang lebih aman, seperti identitas terkelola untuk koneksi tanpa kata sandi atau tanpa kunci, tidak layak. Untuk operasi komputer lokal, lebih suka identitas pengguna untuk koneksi tanpa kata sandi atau tanpa kunci.
Jika Anda menggunakan prinsip keamanan alih-alih string koneksi, dalam versi sebelum 4.0 aplikasi pertama-tama akan terhubung ke Azure Resource Manager (ARM) dengan prinsip keamanan yang disediakan, lalu mengambil string koneksi namespace yang ditentukan dengan ARM. Pada akhirnya aplikasi menggunakan string koneksi yang diambil untuk terhubung ke Azure Service Bus. Dengan cara ini, prinsip keamanan yang disediakan harus diberikan dengan peran Contributor untuk mengambil namespace Azure Service Bus terkait.
Untuk Azure Spring Apps 4.0, kami menyediakan dua cara untuk memanfaatkan prinsip keamanan untuk autentikasi. Seseorang masih menggunakan prinsipal untuk terhubung ke ARM dan mengambil string koneksi di mana peran Contributor diperlukan untuk prinsipal. Yang lain memanfaatkan prinsip keamanan untuk mengautentikasi ke Microsoft Entra ID dan kemudian terhubung ke Azure Service Bus secara langsung. Dalam hal ini, peran Contributor tidak diperlukan lagi, sementara peran terkait Data lainnya diperlukan untuk operasi olahpesan. Untuk memastikan prinsip keamanan telah diberikan izin yang memadai untuk mengakses sumber daya Azure, lihat Authorize akses dengan Microsoft Entra ID.
Untuk autentikasi berdasarkan ARM, mengambil perwakilan layanan sebagai contoh, migrasi konfigurasi tercantum sebagai berikut, di mana peran yang ditetapkan tidak boleh berubah:
Konfigurasi warisan:
spring:
cloud:
azure:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
tenant-id: <tenant>
resource-group: ${SERVICEBUS_RESOURCE_GROUP}
servicebus:
namespace: ${SERVICEBUS_NAMESPACE}
Nota
Nilai yang diizinkan untuk tenant-id adalah: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang mengonversi aplikasi penyewa tunggal Anda, lihat aplikasi penyewa tunggal Convert ke multitenant pada Microsoft Entra ID.
Konfigurasi modern, properti untuk ID langganan Azure dan grup sumber daya diperlukan:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
servicebus:
namespace: ${SERVICEBUS_NAMESPACE}
resource:
resource-group: ${SERVICEBUS_RESOURCE_GROUP}
Nota
Nilai yang diizinkan untuk tenant-id adalah: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang mengonversi aplikasi penyewa tunggal Anda, lihat aplikasi penyewa tunggal Convert ke multitenant pada Microsoft Entra ID.
Anda juga dapat bermigrasi untuk mengautentikasi dan mengotorisasi dengan Microsoft Entra ID secara langsung tanpa melakukan memutar ke ARM. Pastikan untuk memberikan peran Data yang diperlukan perwakilan keamanan untuk operasi olahpesan. Contoh konfigurasi perwakilan layanan dan identitas terkelola tercantum sebagai berikut:
Dengan perwakilan layanan
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Nota
Nilai yang diizinkan untuk tenant-id adalah: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang mengonversi aplikasi penyewa tunggal Anda, lihat aplikasi penyewa tunggal Convert ke multitenant pada Microsoft Entra ID.
Dengan identitas terkelola
spring: cloud: azure: credential: managed-identity-enabled: true client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Perubahan API
- Jatuhkan header pesan
AzureHeaders.RAW_ID. GunakanServiceBusMessageHeaders.MESSAGE_IDsebagai gantinya.
Tabel berikut ini memperlihatkan pemetaan kelas dari azure-spring-cloud-stream-binder-eventhubs ke spring-cloud-azure-stream-binder-eventhubs.
| Kelas warisan | Kelas modern |
|---|---|
com.azure.spring.integration.core.AzureHeaders |
com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders |
com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
com.azure.spring.integration.core.api.Checkpointer |
com.azure.spring.messaging.checkpoint.Checkpointer |
azure-spring-cloud-messaging
Pustaka com.azure.spring:azure-spring-cloud-messaging belum siap untuk 4.0. Fungsi anotasi pendengar sedang didesain ulang, sehingga anotasi @AzureMessageListener, @AzureMessageListeners, dan @EnableAzureMessaging saat ini tidak didukung.