Guida alla migrazione per Spring Cloud Azure 4.0
Questa guida consente di eseguire la migrazione ad Spring Cloud Azure 4.0 dalle librerie di Azure Spring legacy.
Introduzione
Verranno chiamate librerie il cui ID gruppo e ID artefatto seguono il modello com.azure.spring:spring-cloud-azure-*
delle librerie moderne e quelle con modello com.azure.spring:azure-spring-boot-*
, com.azure.spring:azure-spring-cloud-*
o com.azure.spring:azure-spring-integration-*
le librerie legacy .
Questa guida si concentrerà sui confronti side-by-side per configurazioni simili tra le librerie moderne e legacy.
Si presuppone la familiarità con com.azure.spring:azure-spring-boot-*
o com.azure.spring:azure-spring-cloud-*
com.azure.spring:azure-spring-integration-*
il pacchetto .
Se non si ha familiarità con le librerie spring cloud di Azure 4.0, vedere la Guida per sviluppatori di Spring Cloud Azure invece di questa guida.
Vantaggi della migrazione
Una domanda naturale da porre quando si valuta se adottare una nuova versione o libreria è il suo vantaggio. Con la maturità e l'adozione di Azure da un gruppo di sviluppatori più diversificato, ci siamo concentrati sull'apprendimento dei modelli e delle procedure per supportare al meglio la produttività degli sviluppatori e per comprendere le lacune che le librerie di Azure di Spring Cloud hanno.
Sono state espresse diverse aree di feedback coerenti nelle librerie di Spring Cloud di Azure. L'aspetto più importante è che le librerie per diversi servizi di Azure non hanno abilitato il set completo di configurazioni. Inoltre, l'incoerenza della denominazione del progetto, gli ID artefatti, le versioni e le configurazioni hanno reso la curva di apprendimento ripida.
Per migliorare l'esperienza di sviluppo nelle librerie spring cloud di Azure, è stato introdotto un set di linee guida per la progettazione per garantire che le librerie di Azure Spring Cloud abbiano un aspetto naturale e idiotico rispetto all'ecosistema Spring. Altri dettagli sono disponibili nel documento di progettazione per gli interessati.
Spring Cloud Azure 4.0 offre l'esperienza condivisa tra librerie che si integrano con progetti Spring diversi, ad esempio Spring Boot, Spring Integration, Spring Cloud Stream e così via. L'esperienza condivisa include:
- Distinta base unificata per includere tutte le librerie spring cloud di Azure 4.0.
- Convenzione di denominazione coerente per gli artefatti.
- Un modo unificato per configurare le credenziali, il proxy, i tentativi, l'ambiente cloud e le impostazioni del livello di trasporto.
- Supporto di tutti i metodi di autenticazione supportati da un servizio di Azure o da Azure Service SDK.
Panoramica
Questa guida alla migrazione è costituita dalle sezioni seguenti:
- Modifiche alla denominazione per Spring Cloud Azure 4.0
- Modifiche all'artefatto: rinominato/aggiunto/eliminato
- Modifiche alle dipendenze
- Modifiche all'autenticazione
- Proprietà di configurazione
- Modifiche che causano un'interruzione dell'API
- Modifiche alla libreria
Modifiche relative all'assegnazione dei nomi
Non c'è mai stato un nome coerente o ufficiale per chiamare tutte le librerie di Azure Spring Cloud. Alcuni di loro sono stati chiamati Azure Spring Boot
e alcuni di loro Spring on Azure
. Dalla versione 4.0 è stato iniziato a usare il nome Spring Cloud Azure
del progetto per rappresentare tutte le librerie di Azure Spring.
DBA
È stato usato per spedire due MACCHINE virtuali per le librerie, e azure-spring-boot-bom
azure-spring-cloud-dependencies
, ma queste due macchine virtuali sono state combinate in un bom a partire dalla 4.0, ovvero .spring-cloud-azure-dependencies
Aggiungere una voce nella dependencyManagement
sezione del progetto per trarre vantaggio dalla gestione delle dipendenze.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>4.14.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nota
Se si usa Spring Boot 3.x, assicurarsi di impostare la spring-cloud-azure-dependencies
versione su 5.8.0
.
Per altre informazioni sulla spring-cloud-azure-dependencies
versione, vedere Quale versione di Spring Cloud Azure è consigliabile usare.
Modifiche all'artefatto: rinominato/aggiunto/eliminato
Gli ID gruppo sono gli stessi per le librerie di Azure Spring Cloud moderne e legacy. Sono tutti com.azure.spring
. Gli ID artefatti per le moderne librerie di Azure Spring Cloud sono stati modificati. In base al progetto Spring a cui appartiene, Spring Boot, Spring Integration o Spring Cloud Stream, il modello di ID artefatto può essere spring-cloud-azure-starter-[service]
, spring-integration-azure-[service]
o spring-cloud-azure-stream-binder-[service]
. Gli starter legacy per ognuno hanno un ID artefatto che segue il modello azure-spring-*
. Questo offre un mezzo rapido e accessibile per comprendere, a colpo d'occhio, sia che si usino starter moderni o legacy.
Nel processo di sviluppo di Spring Cloud Azure 4.0, sono stati rinominati alcuni artefatti per renderli conformi alle nuove convenzioni di denominazione, sono stati eliminati alcuni artefatti in modo che la funzionalità possa essere inserita in un artefatto più appropriato e aggiunto alcuni nuovi artefatti per gestire meglio alcuni scenari.
La tabella seguente illustra i mapping tra l'ID artefatto legacy e l'ID artefatto moderno:
ID artefatto legacy | ID artefatto moderno | Descrizione |
---|---|---|
azure-spring-boot-starter | spring-cloud-azure-starter | Questo artefatto è stato eliminato con tutte le funzionalità da unire al nuovo spring-cloud-azure-starter artefatto. |
azure-spring-boot-starter-active-directory | spring-cloud-azure-starter-active-directory | Rinominato l'artefatto. |
azure-spring-boot-starter-active-directory-b2c | spring-cloud-azure-starter-active-directory-b2c | Rinominato l'artefatto. |
azure-spring-boot-starter-cosmos | spring-cloud-azure-starter-data-cosmos | Rinominato l'artefatto per aggiungere data , che indica l'uso di Spring Data Azure Cosmos DB. |
azure-spring-boot-starter-keyvault-certificates | non applicabile | Non incluso in questa versione, ma sarà supportato in una versione successiva. |
azure-spring-boot-starter-keyvault-secrets | spring-cloud-azure-starter-keyvault-secrets | Rinominato l'artefatto. |
azure-spring-boot-starter-servicebus-jms | spring-cloud-azure-starter-servicebus-jms | Rinominato l'artefatto. |
azure-spring-boot-starter-storage | spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
L'artefatto legacy contiene la funzionalità di Archiviazione BLOB e condivisione file, è stato inserito in due artefatti separati in 4.0, spring-cloud-azure-starter-storage-blob e spring-cloud-starter-storage-storage-file-share. |
azure-spring-boot | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità da unire al nuovo spring-cloud-azure-autoconfigure artefatto. |
azure-spring-cloud-autoconfigure | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità da unire al nuovo spring-cloud-azure-autoconfigure artefatto. |
azure-spring-cloud-context | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità da unire ai nuovi spring-cloud-azure-autoconfigure elementi e spring-cloud-azure-resourcemanager . |
azure-spring-cloud-messaging | spring-messaging-azure | L'annotazione del listener di messaggistica è stata eliminata. |
azure-spring-cloud-starter-cache | non applicabile | Questo artefatto è stato eliminato, per l'uso di redis, è sufficiente aggiungere spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Per altre informazioni sull'utilizzo, vedere Supporto di Spring Cloud Azure Redis. |
azure-spring-cloud-starter-eventhubs-kafka | non applicabile | Questo artefatto è stato eliminato, per l'uso di kafka, è sufficiente aggiungere spring kafka, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Per altre informazioni sull'utilizzo, vedere Supporto di Spring Cloud Azure Kafka. |
azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Rinominato l'artefatto per aggiungere integration , che indica l'uso di Spring Integration con Hub eventi. |
azure-spring-cloud-starter-servicebus | spring-cloud-azure-starter-integration-servicebus | Rinominato l'artefatto per aggiungere integration , che indica l'uso di Spring Integration con bus di servizio. |
azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Rinominato l'artefatto per aggiungere integration , che indica l'uso di Spring Integration con Archiviazione Queue. |
azure-spring-cloud-storage | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità unite nel nuovo spring-cloud-azure-autoconfigure artefatto. |
azure-spring-cloud-stream-binder-eventhubs | spring-cloud-azure-stream-binder-eventhubs | Questo artefatto è stato sottoposto a refactoring usando una nuova progettazione, principalmente spring-cloud-azure-stream-binder-eventhubs e spring-cloud-azure-stream-binder-eventhubs-core . |
azure-spring-cloud-stream-binder-service-core | spring-cloud-azure-stream-binder-servicebus-core | Rinominato l'artefatto. |
azure-spring-cloud-stream-binder-servicebus-queue | spring-cloud-azure-stream-binder-servicebus | Questo artefatto è stato eliminato con tutte le funzionalità da unire nell'artefatto spring-cloud-azure-stream-binder-servicebus . |
azure-spring-cloud-stream-binder-servicebus-topic | spring-cloud-azure-stream-binder-servicebus | Questo artefatto è stato eliminato con tutte le funzionalità da unire nell'artefatto spring-cloud-azure-stream-binder-servicebus . |
azure-spring-integration-core | spring-integration-azure-core | Rinominato l'artefatto. |
azure-spring-integration-eventhubs | spring-integration-azure-eventhubs | Rinominare l'artefatto. |
azure-spring-integration-servicebus | spring-integration-azure-servicebus | Rinominare l'artefatto. |
azure-spring-integration-storage-queue | spring-integration-azure-storage-queue | Rinominare l'artefatto. |
non applicabile | spring-cloud-azure-attuatore | L'artefatto dell'attuatore spring cloud di Azure appena aggiunto. |
non applicabile | spring-cloud-azure-override-autoconfigure | L'artefatto di configurazione automatica dell'attuatore spring cloud di Azure appena aggiunto, inclusa la configurazione automatica per l'attuatore. |
non applicabile | spring-cloud-azure-autoconfigure | È stato appena aggiunto l'elemento Spring Cloud Azure AutoConfigure, tra cui tutte le configurazioni automatica per i client SDK, il supporto spring security, il supporto spring data e il supporto spring integration. |
non applicabile | spring-cloud-azure-core | È stato appena aggiunto l'elemento Spring Cloud Azure Core, incluse tutte le funzionalità di base. |
non applicabile | spring-cloud-azure-resourcemanager | Nuovo artefatto di Resource Manager aggiunto. Si tratta della libreria Core che usa Azure Resource Manager per leggere i metadati e creare risorse. |
non applicabile | spring-cloud-azure-service | Nuovo artefatto del servizio Spring Cloud di Azure, incluse le astrazioni per i servizi di Azure. |
non applicabile | spring-cloud-azure-starter-appconfiguration | Appena aggiunto starter per l'uso di app Azure client di Configuration SDK. |
non applicabile | spring-cloud-azure-starter-cosmos | Appena aggiunto starter per l'uso del client Azure Cosmos DB SDK. |
non applicabile | spring-cloud-azure-starter-eventhubs | Appena aggiunto starter per l'uso di Hub eventi di Azure client SDK. |
non applicabile | spring-cloud-azure-starter-servicebus | Appena aggiunto starter per l'uso di bus di servizio di Azure client SDK. |
non applicabile | spring-cloud-azure-starter-storage-blob | Nuovo strumento di avvio per l'uso di Archiviazione di Azure client BLOB SDK. |
non applicabile | spring-cloud-azure-starter-storage-file-share | Appena aggiunto starter per l'uso di Archiviazione di Azure client di File Share SDK. |
non applicabile | spring-cloud-azure-starter-storage-queue | Appena aggiunto lo starter per l'uso di Archiviazione di Azure client queue SDK. |
non applicabile | spring-cloud-azure-starter-stream-eventhubs | Appena aggiunto starter per l'uso di Hub eventi di Azure Spring Cloud Stream Binder. |
non applicabile | spring-cloud-azure-starter-stream-servicebus | Strumento di avvio appena aggiunto per l'uso di bus di servizio di Azure Spring Cloud Stream Binder |
non applicabile | spring-cloud-azure-stream-binder-eventhubs-core | È stato appena aggiunto l'artefatto core di Spring Cloud Stream per Hub eventi di Azure. |
Modifiche alle dipendenze
Alcune dipendenze non necessarie sono state incluse negli artefatti legacy, che sono state rimosse nelle moderne librerie di Spring Cloud Azure 4.0. Assicurarsi di aggiungere manualmente le dipendenze rimosse al progetto per evitare arresti anomali.
Le librerie con modifiche alle dipendenze includono:
- spring-cloud-azure-starter
- spring-cloud-azure-starter-active-directory
- spring-cloud-azure-starter-active-directory-b2c
Modifiche all'autenticazione
Spring Cloud Azure 4.0 supporta tutti i metodi di autenticazione supportati da ogni SDK di servizio di Azure. Consente di configurare le credenziali di un token globale e di fornire le credenziali del token a ogni livello di servizio. Tuttavia, non è necessario configurare Spring Cloud Azure 4.0 perché può applicare le credenziali archiviate in un ambiente di sviluppo locale o un'identità gestita in Servizi di Azure. Assicurarsi che all'entità sia stata concessa un'autorizzazione sufficiente per accedere alle risorse di Azure di destinazione.
Nota
Quando si assegnano ruoli alle entità di sicurezza per interagire con i servizi di messaggistica di Azure, i Data
ruoli correlati sono necessari per eseguire operazioni di messaggistica. Per Hub eventi di flusso di Azure Spring Apps/bus di servizio librerie binder, Contributor
il ruolo è necessario quando è necessaria la funzione di creazione automatica delle risorse. Per altre informazioni, vedere Ruoli predefiniti di Azure.
Una credenziale concatenata, il DefaultAzureCredential
bean è configurato automaticamente per impostazione predefinita e verrà usato da tutti i componenti se non vengono specificate altre informazioni di autenticazione. Per altre informazioni, vedere la sezione DefaultAzureCredential della libreria client di Identità di Azure per Java.
Proprietà di configurazione
Migrazione delle proprietà
È stato creato un file additional-spring-configuration-metadata.json per uniformare la migrazione delle proprietà quando si usa con spring-boot-properties-migrator
. Aggiungere prima di tutto la seguente proprietà migratrice all'applicazione:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
In alternativa, se si usa Gradle:
runtime("org.springframework.boot:spring-boot-properties-migrator")
Se si esegue l'app, verranno identificate le proprietà che non sono più gestite da Spring Cloud Azure. Se è presente una sostituzione, verrà temporaneamente mappata la proprietà con un avviso. Se non è presente una sostituzione, verrà restituita una segnalazione errori. In entrambi i casi, la configurazione deve essere aggiornata e la dipendenza rimossa dopo aver aggiornato la configurazione.
Prima di procedere, è consigliabile usare la funzionalità di ricerca dell'IDE per verificare che non si usi una delle proprietà di cui è stata eseguita la migrazione in un test di integrazione.
Nota
In questa modifica sono state modificate molte proprietà di configurazione. L'uso spring-boot-properties-migrator
di consente di semplificare la migrazione.
Configurazioni globali
Il moderno spring-cloud-azure-starter
consente di definire le proprietà applicabili a tutti gli SDK di Azure nello spazio dei nomi spring.cloud.azure
. Questa funzionalità non è supportata nell'oggetto legacy azure-spring-boot-starter
. Le configurazioni globali possono essere suddivise in cinque categorie, illustrate nella tabella seguente:
Prefisso | Descrizione |
---|---|
spring.cloud.azure.client | Configura i client di trasporto sotto ogni SDK di Azure. |
spring.cloud.azure.credential | Configura come eseguire l'autenticazione con Microsoft Entra ID. |
spring.cloud.azure.profile | Configura l'ambiente cloud di Azure. |
spring.cloud.azure.proxy | Configura le opzioni del proxy, si applicano a tutti i client Azure SDK. |
spring.cloud.azure.retry | Configura le opzioni di ripetizione dei tentativi, si applicano a tutti i client Azure SDK. Le opzioni di ripetizione dei tentativi hanno supportato parte degli SDK, non esiste alcun spring.cloud.azure.cosmos.retry elemento . |
Per un elenco completo delle configurazioni, vedere Proprietà di configurazione di Spring Cloud Azure.
Configurare ogni SDK
Per informazioni dettagliate sulle opzioni di configurazione a livello di SDK, usare i collegamenti seguenti:
- Da azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory
- Da azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c
- Da azure-spring-boot-starter-cosmos a spring-cloud-azure-starter-data-cosmos
- Da azure-spring-boot-starter-keyvault-secrets a spring-cloud-azure-starter-keyvault-secrets
- Da azure-spring-boot-starter-servicebus-jms a spring-cloud-azure-starter-servicebus-jms
- Da azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob
- Da azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share
- Da azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs
- Da azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus
- Da azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
- Da azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs
- Da azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus
Modifiche che causano un'interruzione dell'API
Per informazioni dettagliate sulle modifiche di rilievo dell'API in ogni libreria, usare i collegamenti seguenti:
- Da azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory
- Da azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c
- Da azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob
- Da azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share
- Da azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs
- Da azure-spring-integration-eventhubs a spring-integration-azure-eventhubs
- Da azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus
- Da azure-spring-integration-servicebus a spring-integration-azure-servicebus
- Da azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
- Da azure-spring-integration-storage-queue a spring-integration-azure-storage-queue
- Da azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs
- Da azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus
Modifiche alla libreria
Le modifiche di rilievo in ogni libreria vengono introdotte nel modo seguente.
Da azure-spring-boot-starter a spring-cloud-azure-starter
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter dalla versione 3 di azure-spring-boot-starter.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alle dipendenze
Alcune dipendenze non necessarie sono state incluse negli artefatti legacy, che sono state rimosse nelle moderne librerie di Spring Cloud Azure 4.0. Assicurarsi di aggiungere manualmente le dipendenze rimosse al progetto per evitare arresti anomali involontari.
La tabella seguente illustra le dipendenze rimosse:
Dipendenze rimosse | Descrizione |
---|---|
org.springframework.boot:spring-boot-starter-validation | Includere lo starter di convalida se si vuole usare Il validator hibernate. |
Da azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-active-directory dalla versione 3 di azure-spring-boot-starter-active-directory.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alle dipendenze
Alcune dipendenze non necessarie nell'artefatto legacy sono state rimosse dalla libreria moderna di Spring Cloud Azure 4.0. Aggiungere queste dipendenze rimosse al progetto per evitare arresti anomali accidentali.
La tabella seguente illustra le dipendenze rimosse:
Dipendenze rimosse | Descrizione |
---|---|
com.fasterxml.jackson.core:jackson-databind | Aggiungere questa dipendenza al progetto, se necessario. |
io.projectreactor.netty:reactor-netty | Aggiungere questa dipendenza al progetto, se necessario. |
org.springframework.boot:spring-boot-starter-validation | Aggiungere questa dipendenza al progetto, se necessario. |
org.springframework.boot:spring-boot-starter-webflux | Aggiungere questa dipendenza al progetto, se necessario. |
Modifiche alla configurazione dell'SDK
Questa sezione include le modifiche apportate alle proprietà aggiunte, rimosse e modificate.
- I due punti seguenti sono i principali per prestare attenzione a:
- Il prefisso di tutti i nomi delle proprietà di configurazione è stato modificato da
azure.activedirectory
aspring.cloud.azure.active-directory
. - Viene aggiunta una nuova proprietà
spring.cloud.azure.active-directory.enabled
per abilitare/disabilitare le funzionalità correlate a Microsoft Entra. Il valore predefinito èfalse
.
Nella tabella seguente vengono illustrati i mapping delle proprietà tra azure-spring-boot-starter-active-directory
e spring-cloud-azure-starter-active-directory
:
Proprietà legacy | Proprietà moderne |
---|---|
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 | Per altre informazioni, vedere la tabella seguente. |
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-durata | 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-senza stato | 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 |
Il tipo di valore delle proprietà seguenti viene modificato da
long
aDuration
:jwt-connect-timeout
jwt-read-timeout
jwk-set-cache-lifespan
jwk-set-cache-refresh-time
.
Vengono rimosse le proprietà seguenti:
- azure.activedirectory.allow-telemetry
- azure.activedirectory.user-group.enable-full-list
- azure.activedirectory.graph-base-uri
- azure.activedirectory.graph-membership-uri
Vengono aggiunte le proprietà seguenti:
- spring.cloud.azure.active-directory.enabled
- spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
- spring.cloud.azure.active-directory.user-group.use-transitive-members
Nota
La funzione di azure.activedirectory.graph-membership-uri
è stata sostituita da 2 proprietà: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
e spring.cloud.azure.active-directory.user-group.use-transitive-members
. La prima proprietà viene usata per specificare il nome host e il secondo flag per l'uso del percorso URL: v1.0/me/memberOf
o v1.0/me/transitiveMemberOf
.
Ecco alcuni esempi di migrazione:
Esempio 1. Case 1
Per legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Per la versione moderna: 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
Esempio 2. Caso 2
Per legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Per la versione moderna: 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
Modifiche API
La tabella seguente illustra i mapping delle classi da azure-spring-boot-starter-active-directory
a spring-cloud-azure-starter-active-directory
:
Classe legacy | Classe moderna |
---|---|
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 |
Questa sezione elenca le classi rimosse da azure-spring-boot-starter-active-directory.
Classe legacy rimossa
- com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
- com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
- com.azure.spring.aad.webapi.validator.AADJwtClaimValidator
Da azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-active-directory-b2c dalla versione 3 di azure-spring-boot-starter-active-directory-b2c.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alle dipendenze
Alcune dipendenze non necessarie sono state incluse negli artefatti legacy, che sono state rimosse nelle moderne librerie di Spring Cloud Azure 4.0. Assicurarsi di aggiungere manualmente le dipendenze rimosse al progetto per evitare arresti anomali involontari.
La tabella seguente illustra le dipendenze rimosse:
Dipendenze rimosse | Descrizione |
---|---|
org.springframework.boot:spring-boot-starter-validation | Includere lo starter di convalida se si vuole usare Il validator hibernate. |
Modifiche alla configurazione dell'SDK
Questa sezione include le modifiche apportate alle proprietà aggiunte, rimosse e modificate.
- I due punti seguenti sono i principali per prestare attenzione a:
- Tutti i nomi delle proprietà di configurazione hanno modificato il prefisso da
azure.activedirectory.b2c
aspring.cloud.azure.active-directory.b2c
. - Viene aggiunta una nuova proprietà
spring.cloud.azure.active-directory.b2c.enabled
per consentire l'abilitazione o la disabilitazione delle funzionalità correlate ad Azure AD B2C. Il valore predefinito è false.
La tabella seguente illustra i mapping delle proprietà da azure-spring-boot-starter-active-directory-b2c
a spring-cloud-azure-starter-active-directory-b2c
:
Proprietà legacy | Proprietà moderne |
---|---|
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 |
Proprietà rimosse da azure-spring-boot-starter-active-directory-b2c:
- azure.activedirectory.b2c.allow-telemetry
- azure.activedirectory.b2c.tenant
Il tipo di valore delle proprietà seguenti viene modificato da
long
aDuration
:- jwt-connect-timeout
- jwt-read-timeout
Modifiche API
La tabella seguente illustra i mapping delle classi da azure-spring-boot-starter-active-directory-b2c
a spring-cloud-azure-starter-active-directory-b2c
:
Classe legacy | Classe moderna |
---|---|
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 |
Da azure-spring-boot-starter-cosmos a spring-cloud-azure-starter-data-cosmos
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-data-cosmos dalla versione 3 di azure-spring-boot-starter-cosmos.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Tutti i nomi delle proprietà di configurazione hanno modificato il prefisso da azure.cosmos
a spring.cloud.azure.cosmos
.
La tabella seguente illustra i mapping delle classi da azure-spring-boot-starter-cosmos
a spring-cloud-azure-starter-data-cosmos
:
Proprietà legacy | Proprietà moderne |
---|---|
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 |
Da azure-spring-boot-starter-keyvault-secrets a spring-cloud-azure-starter-keyvault-secrets
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-keyvault-secrets dalla versione 3 di azure-spring-boot-starter-keyvault-secrets.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Questa sezione include le modifiche apportate alle proprietà aggiunte, rimosse e modificate.
La tabella seguente illustra i mapping delle proprietà da azure-spring-boot-starter-keyvault-secrets
a spring-cloud-azure-starter-keyvault-secrets
:
Proprietà legacy | Proprietà moderne |
---|---|
azure.keyvault.case-sensitive-keys | spring.cloud.azure.keyvault.secret.property-source[n].distinzione tra maiuscole e minuscole |
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 e spring.cloud.azure.keyvault.secret.property-source-enabled |
azure.keyvault.order | Non più supportata. Usare invece l'ordine in property-source[n]. |
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 |
- Rimozione delle proprietà da spring-cloud-azure-starter-keyvault-secrets
azure.keyvault.allow-telemetry azure.keyvault.order
I punti seguenti è consigliabile prestare attenzione a:
- Tutti i nomi delle proprietà di configurazione hanno modificato il prefisso da
azure.keyvault
aspring.cloud.azure.keyvault.secret
. spring.cloud.azure.keyvault.secret.enabled
viene usato per abilitare tutte le funzionalità dei segreti dell'insieme di credenziali delle chiavi, includere configurare i fagioli client segreti dell'insieme di credenziali delle chiavi (ad esempioSecretClient
eSecretAsyncClient
) e aggiungereKeyVaultPropertySource
inConfigurableEnvironment
.spring.cloud.azure.keyvault.secret.property-source-enabled
viene usato per abilitare tuttoKeyVaultPropertySource
. Avrà effetto solo quandospring.cloud.azure.keyvault.secret.enabled=true
.- Per le proprietà comuni di Azure( ad esempio
client
,retry
proxy
, ,credential
,profile
) e Key Vault (ad esempioendpoint
,service-version
). Sespring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
non è configurato,spring.cloud.azure.keyvault.secret.PROPERTY_NAME
verrà usato . spring.cloud.azure.keyvault.secret.property-sources[n].resource
è specifico di una risorsa di Azure univoca, quindi se non è configurata, non otterrà valore da altre posizioni.
Da azure-spring-boot-starter-servicebus-jms a spring-cloud-azure-starter-servicebus-jms
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-servicebus-jms dalla versione 3 di azure-spring-boot-starter-servicebus-jms.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Tipo di configurazione per spring.jms.servicebus.idle-timeout
modificato da long
(millisecondi) a Duration
modello per la leggibilità.
Da azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-storage-blob dalla versione 3 di azure-spring-boot-starter-storage.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Tutti i nomi delle proprietà di configurazione hanno modificato il prefisso da azure.storage
a spring.cloud.azure.storage.blob
.
La tabella seguente illustra i mapping delle proprietà da azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-blob
:
Proprietà legacy | Proprietà moderne |
---|---|
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 |
Modifiche API
La tabella seguente illustra i mapping delle classi da azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-blob
:
Classe legacy | Classe moderna |
---|---|
com.azure.spring.autoconfigure.storage.resource.Azure Archiviazione ProtocolResolver | com.azure.spring.core.resource.Azure Archiviazione BlobProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.Blob Archiviazione Resource | com.azure.spring.core.resource. Archiviazione BlobResource |
com.azure.spring.autoconfigure.storage.resource.Azure Archiviazione ResourcePatternResolver | com.azure.spring.core.resource.Azure Archiviazione BlobProtocolResolver |
Da azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-storage-file-share dalla versione 3 di azure-spring-boot-starter-storage.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Tutti i nomi delle proprietà di configurazione hanno modificato il prefisso da azure.storage
a spring.cloud.azure.storage.fileshare
.
La tabella seguente illustra i mapping delle proprietà da azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-file-share
:
Proprietà legacy | Proprietà moderne |
---|---|
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 |
Modifiche API
La tabella seguente illustra i mapping delle classi da azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-file-share
:
Classe legacy | Classe moderna |
---|---|
com.azure.spring.autoconfigure.storage.resource.Azure Archiviazione ProtocolResolver | com.azure.spring.core.resource.Azure Archiviazione FileProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.File Archiviazione Resource | com.azure.spring.core.resource. Archiviazione FileResource |
com.azure.spring.autoconfigure.storage.resource.Azure Archiviazione ResourcePatternResolver | com.azure.spring.core.resource.Azure Archiviazione FileProtocolResolver |
Da azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-integration-eventhubs dalla versione 2 di azure-spring-cloud-starter-eventhubs.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Importante
Il prefisso di configurazione è stato modificato da spring.cloud.azure.eventhub
a spring.cloud.azure.eventhubs.
Per le modifiche alle voci figlio per questo prefisso, vedere le tabelle seguenti:
Nella tabella seguente vengono illustrati i mapping delle proprietà da azure-spring-cloud-starter-eventhubs
a spring-cloud-azure-starter-integration-eventhubs
:
Proprietà legacy | Proprietà moderne |
---|---|
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 |
Ad esempio, cambiare da:
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}
in:
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}
Modifiche API
- Per le modifiche alle annotazioni del listener, vedere la guida alla migrazione della <<libreria migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> .
- Rilasciare
EventHubOperation
con la funzione di sottoscrizione spostata nella classeEventHubsMessageListenerContainer
e la funzione di invio spostata inEventHubsTemplate
. - Rinominare
EventHubInboundChannelAdapter
perEventHubsInboundChannelAdapter
mantenere la coerenza con il servizio di Hub eventi di Azure. - Modificare il costruttore da
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
eEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Modificare
CheckpointConfig
lo stile di creazione di istanze nel costruttore semplice anziché nello stile di compilazione. - Eliminare l'API
EventHubOperation#setCheckpointConfig
. Per impostare la configurazione del checkpoint per l'adattatore del canale in ingresso, gli utenti possono chiamare il metodoEventHubsContainerProperties#setCheckpointConfig
. - Eliminare l'API
EventHubOperation#setBatchConsumerConfig
. Per impostare la configurazione che usa batch per l'adattatore del canale in ingresso, gli utenti possono chiamare i due metodiEventHubsContainerProperties#getBatch#setMaxSize
eEventHubsContainerProperties#getBatch#setMaxWaitTime
nel frattempo. - Per la modalità di utilizzo batch, modificare i nomi delle intestazioni dei messaggi convertiti da messaggi in batch.
- Modificare l'intestazione del messaggio da
azure_eventhub_enqueued_time
aazure_eventhubs_batch_converted_enqueued_time
. - Modificare l'intestazione del messaggio da
azure_eventhub_offset
aazure_eventhubs_batch_converted_offset
. - Modificare l'intestazione del messaggio da
azure_eventhub_sequence_number
aazure_eventhubs_batch_converted_sequence_number
. - Modificare l'intestazione del messaggio da
azure_partition_key
aazure_batch_converted_partition_key
.
- Modificare l'intestazione del messaggio da
- Quando si pubblicano messaggi in Hub eventi, ignorare tutte le intestazioni di messaggio convertite da messaggi in batch. Le intestazioni includono:
- 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
- La
BATCH
modalità checkpoint funziona solo in modalità di utilizzo batch, che può essere abilitata passandoListenerMode.BATCH
al costruttore EventHubsInboundChannelAdapter.
La tabella seguente illustra i mapping delle classi da azure-spring-cloud-starter-eventhubs
a spring-cloud-azure-starter-integration-eventhubs
:
Classe legacy | Classe moderna |
---|---|
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 |
Frammento di codice di esempio
EventHubsInboundChannelAdapter
codice di esempio:Codice legacy:
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; } }
Codice moderno:
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; } }
DefaultMessageHandler
codice di esempio:Codice legacy:
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; } }
Codice moderno:
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; } }
Da azure-spring-integration-eventhubs a spring-integration-azure-eventhubs
Questa guida è progettata per facilitare la migrazione a spring-integration-azure-eventhubs dalla versione 2 di azure-spring-integration-eventhubs.
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
Modifiche API
- Rilasciare
EventHubOperation
con la funzione di sottoscrizione spostata nella classeEventHubsMessageListenerContainer
e la funzione di invio spostata inEventHubsTemplate
. - Rinominare
EventHubInboundChannelAdapter
perEventHubsInboundChannelAdapter
mantenere la coerenza con il servizio di Hub eventi di Azure. - Modificare il costruttore da
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
eEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Modificare
CheckpointConfig
lo stile di creazione di istanze nel costruttore semplice anziché nello stile di compilazione. - Eliminare l'API
EventHubOperation#setCheckpointConfig
. Per impostare la configurazione del checkpoint per l'adattatore del canale in ingresso, gli utenti possono chiamare il metodoEventHubsContainerProperties#setCheckpointConfig
. - Eliminare l'API
EventHubOperation#setBatchConsumerConfig
. Per impostare la configurazione che usa batch per l'adattatore del canale in ingresso, gli utenti possono chiamare i due metodiEventHubsContainerProperties#getBatch#setMaxSize
eEventHubsContainerProperties#getBatch#setMaxWaitTime
nel frattempo. - Per la modalità di utilizzo batch, modificare i nomi delle intestazioni dei messaggi convertiti da messaggi in batch.
- Modificare l'intestazione del messaggio da
azure_eventhub_enqueued_time
aazure_eventhubs_batch_converted_enqueued_time
. - Modificare l'intestazione del messaggio da
azure_eventhub_offset
aazure_eventhubs_batch_converted_offset
. - Modificare l'intestazione del messaggio da
azure_eventhub_sequence_number
aazure_eventhubs_batch_converted_sequence_number
. - Modificare l'intestazione del messaggio da
azure_partition_key
aazure_batch_converted_partition_key
.
- Modificare l'intestazione del messaggio da
- Quando si pubblicano messaggi in Hub eventi, ignorare tutte le intestazioni di messaggio convertite da messaggi in batch. Le intestazioni includono:
- 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
- La
BATCH
modalità checkpoint funziona solo in modalità di utilizzo batch, che può essere abilitata passandoListenerMode.BATCH
al costruttore EventHubsInboundChannelAdapter.
La tabella seguente illustra i mapping delle classi da azure-spring-integration-eventhubs
a spring-integration-azure-eventhubs
:
Classe legacy | Classe moderna |
---|---|
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 |
Da azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-integration-servicebus dalla versione 2 di azure-spring-cloud-starter-servicebus.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Per tutte le opzioni di configurazione supportate in spring-cloud-azure-starter-integration-servicebus
, il prefisso rimane come spring.cloud.azure.servicebus
.
La tabella seguente illustra i mapping delle proprietà da azure-spring-cloud-starter-servicebus
a spring-cloud-azure-starter-integration-servicebus
:
Proprietà legacy | Proprietà moderne |
---|---|
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-retries o spring.cloud.azure.servicebus.retry.fixed.max-retries, deve essere configurato a seconda di spring.cloud.azure.servicebus.retry.mode=fixed o esponenziale |
spring.cloud.azure.servicebus.retry-options.delay | Spring.cloud.azure.servicebus.retry.exponential.base-delay o spring.cloud.azure.servicebus.retry.fixed.delay, deve essere configurato a seconda di spring.cloud.azure.servicebus.retry.mode=fixed o esponenziale |
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 |
Modifiche API
- Eliminare
ServiceBusQueueOperation
eServiceBusTopicOperation
con la funzione di sottoscrizione spostata nella classeServiceBusMessageListenerContainer
e la funzione di invio è stata spostata inServiceBusTemplate
. - Eliminare
ServiceBusQueueInboundChannelAdapter
eServiceBusTopicInboundChannelAdapter
e spostare la funzionalità per restare in ascolto di un'entità coda/argomento bus di servizio in ServiceBusInboundChannelAdapter. - Modificare il costruttore da
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Modificare il costruttore da
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Eliminare le
ServiceBusQueueOperation#setCheckpointConfig
API eServiceBusTopicOperation#setCheckpointConfig
. Per impostare la configurazione del checkpoint per l'adattatore del canale in ingresso, gli utenti possono invece chiamare il metodoServiceBusContainerProperties#setAutoComplete
. Per disabilitare la modalità di completamento automatico equivale allaMANUAL
modalità checkpoint e per abilitarla attiverà laRECORD
modalità. - Eliminare le
ServiceBusQueueOperatio#setClientConfig
API eServiceBusTopicOperation#setClientConfig
. Per configurare l'oggetto sottostanteServiceBusProcessorClient
utilizzato dall'adattatore del canale in ingresso, gli utenti possono usareServiceBusContainerProperties
invece. - Eliminare
CompletableFuture
il supporto inServiceBusTemplate
eDefaultMessageHandler
, supportareReactor
invece . - Aggiungere una nuova API di per specificare il tipo di
ServiceBusTemplate#setDefaultEntityType
entità, necessario quando non viene fornito alcun bean diPropertiesSupplier<String, ProducerProperties>
per .ProducerProperties#entityType
- Eliminare l'intestazione
AzureHeaders.RAW_ID
del messaggio . Utilizzare inveceServiceBusMessageHeaders.MESSAGE_ID
.
La tabella seguente illustra i mapping delle classi da azure-spring-cloud-starter-servicebus
a spring-cloud-azure-starter-integration-servicebus
:
Classe legacy | Classe moderna |
---|---|
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 |
Frammento di codice di esempio
ServiceBusInboundChannelAdapter
codice di esempio:Codice legacy di using
ServiceBusQueueInboundChannelAdapter
oServiceBusTopicInboundChannelAdapter
: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; } }
Codice moderno:
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; } }
DefaultMessageHandler
codice di esempio:Codice legacy, prendendo la coda come esempio:
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; } }
Codice moderno:
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; } }
Da azure-spring-integration-servicebus a spring-integration-azure-servicebus
Questa guida è progettata per facilitare la migrazione a spring-integration-azure-servicebus dalla versione 2 di azure-spring-integration-servicebus.
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
Modifiche API
- Eliminare
ServiceBusQueueOperation
eServiceBusTopicOperation
con la funzione di sottoscrizione spostata nella classeServiceBusMessageListenerContainer
e la funzione di invio è stata spostata inServiceBusTemplate
. - Eliminare
ServiceBusQueueInboundChannelAdapter
eServiceBusTopicInboundChannelAdapter
e spostare la funzionalità per restare in ascolto di un'entità coda/argomento bus di servizio in ServiceBusInboundChannelAdapter. - Modificare il costruttore da
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Modificare il costruttore da
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Eliminare le
ServiceBusQueueOperation#setCheckpointConfig
API eServiceBusTopicOperation#setCheckpointConfig
. Per impostare la configurazione del checkpoint per l'adattatore del canale in ingresso, gli utenti possono invece chiamare il metodoServiceBusContainerProperties#setAutoComplete
. Per disabilitare la modalità di completamento automatico equivale allaMANUAL
modalità checkpoint e per abilitarla attiverà laRECORD
modalità. - Eliminare le
ServiceBusQueueOperation#setClientConfig
API eServiceBusTopicOperation#setClientConfig
. Per configurare l'oggetto sottostanteServiceBusProcessorClient
utilizzato dall'adattatore del canale in ingresso, gli utenti possono usareServiceBusContainerProperties
invece. - Eliminare
CompletableFuture
il supporto inServiceBusTemplate
eDefaultMessageHandler
, supportareReactor
invece . - Aggiungere una nuova API di per specificare il tipo di
ServiceBusTemplate#setDefaultEntityType
entità, necessario quando non viene fornito alcun bean diPropertiesSupplier<String, ProducerProperties>
per .ProducerProperties#entityType
- Eliminare l'intestazione
AzureHeaders.RAW_ID
del messaggio . Utilizzare inveceServiceBusMessageHeaders.MESSAGE_ID
.
La tabella seguente illustra i mapping delle classi da azure-spring-integration-servicebus
a spring-integration-azure-servicebus
:
Classe legacy | Classe moderna |
---|---|
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 |
Da azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-integration-storage-queue dalla versione 2 di azure-spring-cloud-starter-storage-queue.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Tutti i nomi delle proprietà di configurazione hanno modificato il prefisso da spring.cloud.azure.storage
a spring.cloud.azure.storage.queue
.
La tabella seguente illustra i mapping delle proprietà da azure-spring-cloud-starter-storage-queue
a spring-cloud-azure-starter-integration-storage-queue
:
Proprietà legacy | Proprietà moderne |
---|---|
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 |
Modifiche API
- Eliminare
StorageQueueOperation
e fornireStorageQueueTemplate
invece. - Eliminare
checkpoint-mode
la configurazione inStorageQueueTemplate
, supportare solo laMANUAL
modalità .
Nella tabella seguente vengono illustrati i mapping delle classi da azure-spring-cloud-starter-storage-queue
a spring-cloud-azure-starter-integration-storage-queue
.
Classe legacy | Classe moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter. Archiviazione QueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter. Archiviazione QueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue. Archiviazione QueueTemplate | com.azure.spring.storage.queue.core. Archiviazione QueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound. Archiviazione QueueMessageSource | com.azure.spring.integration.storage.queue.inbound. Archiviazione QueueMessageSource |
Da azure-spring-integration-storage-queue a spring-integration-azure-storage-queue
Questa guida è progettata per facilitare la migrazione a spring-integration-azure-storage-queue dalla versione 2 di azure-spring-integration-storage-queue.
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
Modifiche API
- Eliminare
StorageQueueOperation
e fornireStorageQueueTemplate
invece. - Eliminare
checkpoint-mode
la configurazione inStorageQueueTemplate
, supportare solo laMANUAL
modalità .
Nella tabella seguente vengono illustrati i mapping delle classi da azure-spring-integration-storage-queue
a spring-integration-azure-storage-queue
.
Classe legacy | Classe moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter. Archiviazione QueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter. Archiviazione QueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue. Archiviazione QueueTemplate | com.azure.spring.storage.queue.core. Archiviazione QueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound. Archiviazione QueueMessageSource | com.azure.spring.integration.storage.queue.inbound. Archiviazione QueueMessageSource |
Da azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-stream-binder-eventhubs dalla versione 2 di azure-spring-cloud-stream-binder-eventhubs.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Importante
Il prefisso di configurazione è stato modificato da spring.cloud.azure.eventhub
a spring.cloud.azure.eventhubs.
Importante
Il tipo di binder viene rinominato da: eventhub
a eventhubs
.
Per le modifiche apportate alle voci figlio per il prefisso seguente, vedere la tabella seguente.
Nella tabella seguente vengono illustrati i mapping delle proprietà da azure-spring-cloud-stream-binder-eventhubs
a spring-cloud-azure-stream-binder-eventhubs
:
Proprietà legacy | Proprietà moderne |
---|---|
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
Il tipo di valore della start-position
configurazione viene modificato anche da un'enumerazione di com.azure.spring.integration.core.api.StartPosition
a per map
StartPositionProperties
ogni partizione. Pertanto, la chiave è l'ID partizione e il valore è di che include proprietà di com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties
offset, numero di sequenza, ora di data accodata e se inclusivo.
Esempi di migrazione della configurazione
Per usare il stringa di connessione per l'autenticazione ed eseguire la migrazione delle proprietà indicate in precedenza, le modifiche di configurazione sono elencate di seguito:
Configurazione legacy:
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
Configurazione moderna:
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
Se si usano entità di sicurezza anziché stringa di connessione, nelle versioni precedenti alla 4.0 l'applicazione si connetterà prima ad Azure Resource Manager (ARM) con l'entità di sicurezza fornita e quindi recupererà il stringa di connessione dello spazio dei nomi specificato con ARM. Alla fine l'applicazione usa il stringa di connessione recuperato per connettersi a Hub eventi di Azure. In questo modo, l'entità di sicurezza fornita deve essere concessa con il ruolo Collaboratore per recuperare lo spazio dei nomi Hub eventi di Azure associato.
Per Azure Spring Apps 4.0, sono disponibili due modi per sfruttare le entità di sicurezza per l'autenticazione. Uno usa ancora le entità per connettersi a ARM e recuperare le stringa di connessione in cui è necessario il Contributor
ruolo per le entità. L'altro sfrutta le entità di sicurezza per eseguire l'autenticazione con Microsoft Entra ID e quindi connettersi direttamente a Hub eventi di Azure. In questo caso, il Contributor
ruolo non è più necessario, mentre altri Data
ruoli correlati sono necessari per le operazioni di messaggistica. Per assicurarsi che all'entità di sicurezza sia stata concessa l'autorizzazione sufficiente per accedere alla risorsa di Azure, vedere Autorizzare l'accesso con Microsoft Entra ID.
Per l'autenticazione basata su ARM, prendendo l'entità servizio, ad esempio, la migrazione della configurazione è elencata di seguito, in cui il ruolo assegnato non deve cambiare:
Configurazione legacy:
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
I valori consentiti per tenant-id
sono: common
, organizations
, consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.
Sono necessarie la configurazione moderna, le proprietà per l'ID sottoscrizione di Azure e il gruppo di risorse:
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
I valori consentiti per tenant-id
sono: common
, organizations
, consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.
È anche possibile eseguire la migrazione per eseguire l'autenticazione e l'autorizzazione direttamente con Microsoft Entra ID senza effettuare una deviazione per ARM. Assicurarsi di concedere i ruoli necessari Data
all'entità di sicurezza per le operazioni di messaggistica. Di seguito sono elencati gli esempi di configurazione dell'entità servizio e dell'identità gestita:
Con un'entità servizio
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Nota
I valori consentiti per tenant-id
sono: common
, organizations
, consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.
Con un'identità gestita
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}
Modifiche API
Nella tabella seguente vengono illustrati i mapping delle classi da azure-spring-cloud-stream-binder-eventhubs
a spring-cloud-azure-stream-binder-eventhubs
.
Classe legacy | Classe moderna |
---|---|
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 |
Da azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-stream-binder-servicebus dalla versione 2 di azure-spring-cloud-stream-binder-servicebus-queue o azure-spring-cloud-stream-binder-servicebus-topic.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni Introduzione e Vantaggi della migrazione.
- Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione .
- Per informazioni su come usare una distinta base per tutte le librerie di Spring Cloud di Azure, vedere la sezione BOM .
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modifiche all'autenticazione.
- Per informazioni su come sfruttare
spring-boot-properties-migrator
durante la migrazione, vedere la sezione Configurare ogni SDK . - Per altre informazioni sulle modifiche di configurazione globali e comuni, vedere la sezione Configurazioni globali.
Modifiche alla configurazione dell'SDK
Importante
Le librerie del binder legacy sono azure-spring-cloud-stream-binder-servicebus-queue
e azure-spring-cloud-stream-binder-servicebus-topic
e ora vengono unite in un unico spring-cloud-azure-stream-binder-servicebus
oggetto .
Importante
Il tipo di binder viene combinato da servicebus-queue
e servicebus-topic
come servicebus
.
Nella tabella seguente sono elencate le nuove proprietà di configurazione di spring-cloud-azure-stream-binder-servicebus
:
Proprietà moderne | Descrizione |
---|---|
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type | Se si usa la funzione di invio, è necessario impostare il tipo di entità, che è possibile impostare su argomento o coda. |
La tabella seguente illustra i mapping delle proprietà da azure-spring-cloud-stream-binder-servicebus-*
a spring-cloud-azure-stream-binder-servicebus
:
Proprietà legacy | Proprietà moderne |
---|---|
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-retries o spring.cloud.azure.servicebus.retry.fixed.max-retries, deve essere configurato a seconda di spring.cloud.azure.servicebus.retry.mode=fixed o esponenziale |
spring.cloud.azure.servicebus.retry-options.delay | Spring.cloud.azure.servicebus.retry.exponential.base-delay o spring.cloud.azure.servicebus.retry.fixed.delay, deve essere configurato a seconda di spring.cloud.azure.servicebus.retry.mode=fixed o esponenziale |
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.Concorrenza | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.modalità checkpoint | spring.cloud.stream.servicebus.bindings.binding-name.consumer.completamento automatico |
spring.cloud.stream.servicebus.topic.bindings.* | spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Concorrenza | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.modalità checkpoint | spring.cloud.stream.servicebus.bindings.binding-name.consumer.completamento automatico |
Nota
La proprietà di concorrenza verrà sostituita da maxConcurrentSessions quando sessionsEnabled è true
e maxConcurrentCalls quando sessionsEnabled è false
.
Nota
L'abilitazione del completamento automatico è uguale alla RECORD
modalità checkpoint e viceversa.MANUAL
Esempi di migrazione della configurazione
Configurazione legacy, esecuzione della coda come esempio:
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
Configurazione moderna:
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
Se si usano entità di sicurezza anziché stringa di connessione, nelle versioni precedenti alla 4.0 l'applicazione si connetterà prima ad Azure Resource Manager (ARM) con l'entità di sicurezza fornita e quindi recupererà il stringa di connessione dello spazio dei nomi specificato con ARM. Alla fine l'applicazione usa il stringa di connessione recuperato per connettersi a bus di servizio di Azure. In questo modo, l'entità di sicurezza fornita deve essere concessa con il ruolo Collaboratore per recuperare lo spazio dei nomi bus di servizio di Azure associato.
Per Azure Spring Apps 4.0, sono disponibili due modi per sfruttare le entità di sicurezza per l'autenticazione. Uno usa ancora le entità per connettersi a ARM e recuperare le stringa di connessione in cui è necessario il Contributor
ruolo per le entità. L'altro sfrutta le entità di sicurezza per eseguire l'autenticazione con Microsoft Entra ID e quindi connettersi direttamente al bus di servizio di Azure. In questo caso, il Contributor
ruolo non è più necessario, mentre altri Data
ruoli correlati sono necessari per le operazioni di messaggistica. Per assicurarsi che all'entità di sicurezza sia stata concessa l'autorizzazione sufficiente per accedere alla risorsa di Azure, vedere Autorizzare l'accesso con Microsoft Entra ID.
Per l'autenticazione basata su ARM, prendendo l'entità servizio, ad esempio, la migrazione della configurazione è elencata di seguito, in cui il ruolo assegnato non deve cambiare:
Configurazione legacy:
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
I valori consentiti per tenant-id
sono: common
, organizations
, consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.
Sono necessarie la configurazione moderna, le proprietà per l'ID sottoscrizione di Azure e il gruppo di risorse:
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
I valori consentiti per tenant-id
sono: common
, organizations
, consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.
È anche possibile eseguire la migrazione per eseguire l'autenticazione e l'autorizzazione direttamente con Microsoft Entra ID senza effettuare una deviazione per ARM. Assicurarsi di concedere i ruoli necessari Data
all'entità di sicurezza per le operazioni di messaggistica. Di seguito sono elencati gli esempi di configurazione dell'entità servizio e dell'identità gestita:
Con un'entità servizio
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Nota
I valori consentiti per tenant-id
sono: common
, organizations
, consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.
Con un'identità gestita
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}
Modifiche API
- Eliminare l'intestazione
AzureHeaders.RAW_ID
del messaggio . Utilizzare inveceServiceBusMessageHeaders.MESSAGE_ID
.
Nella tabella seguente vengono illustrati i mapping delle classi da azure-spring-cloud-stream-binder-eventhubs
a spring-cloud-azure-stream-binder-eventhubs
.
Classe legacy | Classe moderna |
---|---|
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
La com.azure.spring:azure-spring-cloud-messaging
libreria non è pronta per la versione 4.0. La funzione delle annotazioni del listener è in fase di riprogettazione, quindi le @AzureMessageListener
annotazioni , @AzureMessageListeners
e @EnableAzureMessaging
non sono attualmente supportate.