Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
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-*, com.azure.spring:azure-spring-cloud-* o pacchetto di com.azure.spring:azure-spring-integration-*.
Se non si ha familiarità con le librerie spring cloud di Azure 4.0, vedere la guida per sviluppatori di Spring Cloud azure anziché 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 nella documentazione 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 alla denominazione
Non c'è mai stato un nome coerente o ufficiale per chiamare tutte le librerie di Azure Spring Cloud. Alcuni di essi sono stati chiamati Azure Spring Boot e alcuni di essi Spring on Azure. Dalla versione 4.0 è stato iniziato a usare il nome del progetto Spring Cloud Azure per rappresentare tutte le librerie di Azure Spring.
DBA
È stato usato per spedire due MACCHINE virtuali per le librerie, la azure-spring-boot-bom e azure-spring-cloud-dependencies, ma queste due macchine virtuali sono state combinate in una distinta base a partire dalla 4.0, la spring-cloud-azure-dependencies. Aggiungere una voce nella sezione dependencyManagement del progetto per trarre vantaggio dalla gestione delle dipendenze.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.23.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nota
Se si usa Spring Boot 2.x, assicurarsi di impostare la versione spring-cloud-azure-dependencies su 4.20.0.
Per altre informazioni sulla versione usata per questa distinta base, vedere quale versione di Spring Cloud Azure deve 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 potrebbe 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 | primavera-nuvola-azure-starter | Questo artefatto è stato eliminato con tutte le funzionalità da unire nel nuovo artefatto spring-cloud-azure-starter. |
| azure-spring-boot-starter-active-directory | spring-cloud-azure-starter-active-directory | Rinominato l'artefatto. |
| azure-spring-boot-starter-active-directory-b2c | primavera-cloud-azure-starter-active-directory-b2c | Rinominato l'artefatto. |
| azure-spring-boot-starter-cosmos | primavera-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à sia del BLOB di archiviazione che della condivisione file, è stato inserito in due artefatti separati nella versione 4.0, spring-cloud-azure-starter-storage-blob e spring-cloud-azure-starter-storage-file-share. |
| azure-spring-boot | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità da unire nel nuovo artefatto spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-autoconfigure | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità da unire nel nuovo artefatto spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-context | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità da unire ai nuovi elementi spring-cloud-azure-autoconfigure e spring-cloud-azure-resourcemanager. |
| azure-spring-cloud-messaging | primavera-messaggistica-azzurro | 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 Spring Cloud Azure Redis support.For more information about usage, see Spring Cloud Azure Redis support. |
| 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 Spring Cloud Azure Kafka support.For more information about usage, see Spring Cloud Azure Kafka support. |
| 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 il 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 la coda di archiviazione. |
| azure-spring-cloud-storage | non applicabile | Questo artefatto è stato eliminato con tutte le funzionalità unite nel nuovo artefatto spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-stream-binder-eventhubs | spring-cloud-azure-stream-binder-eventhubs | Questo artefatto è stato 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 | primavera-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 | primavera-nuvola-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 | configurazione dell'app spring-cloud-azure-starter | Appena aggiunto lo strumento di avvio per l'uso del client azure App Configuration SDK. |
| non applicabile | primavera-nuvola-azzurra-starter-cosmos | Appena aggiunto starter per l'uso del client Azure Cosmos DB SDK. |
| non applicabile | spring-cloud-azure-starter-eventhubs | Appena aggiunto lo starter per l'uso del client SDK di Hub eventi di Azure. |
| non applicabile | spring-cloud-azure-starter-servicebus | Appena aggiunto starter per l'uso del client sdk del bus di servizio di Azure. |
| non applicabile | spring-cloud-azure-starter-storage-blob | Appena aggiunto lo strumento di avvio per l'uso del client DELL'SDK BLOB di Archiviazione di Azure. |
| non applicabile | spring-cloud-azure-starter-storage-file-share | Appena aggiunto lo starter per l'uso del client sdk di Condivisione file di Archiviazione di Azure. |
| non applicabile | spring-cloud-azure-starter-storage-queue | Appena aggiunto lo starter per l'uso del client azure Storage Queue SDK. |
| non applicabile | spring-cloud-azure-starter-stream-eventhubs | Appena aggiunto lo strumento di avvio per l'uso di Spring Cloud Stream Binder di Hub eventi di Azure. |
| non applicabile | spring-cloud-azure-starter-stream-servicebus | Strumento di avvio appena aggiunto per l'uso di Spring Cloud Stream Binder del bus di servizio di Azure |
| non applicabile | spring-cloud-azure-stream-binder-eventhubs-core | È stato aggiunto l'artefatto principale 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
- primavera-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 ruoli correlati Data sono necessari per eseguire operazioni di messaggistica. Per le librerie di Hub eventi di flusso di Azure Spring Apps/Binder del bus di servizio, Contributor ruolo è necessario quando è necessaria la funzione di creazione automatica delle risorse. Per altre informazioni, vedere ruoli predefiniti di Azure.
Una credenziale concatenata, la DefaultAzureCredential bean è configurata automaticamente per impostazione predefinita e verrà usata da tutti i componenti se non vengono specificate altre informazioni di autenticazione. Per altre informazioni, vedere la sezione DefaultAzureCredential di libreria client di Azure Identity 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 del spring-boot-properties-migrator consente di semplificare la migrazione.
Configurazioni globali
L'spring-cloud-azure-starter moderna consente di definire proprietà applicabili a tutti gli SDK di Azure nello spazio dei nomi spring.cloud.azure. Questa funzionalità non è supportata nell'azure-spring-boot-starterlegacy. Le configurazioni globali possono essere suddivise in cinque categorie, illustrate nella tabella seguente:
| Prefisso | Descrizione |
|---|---|
| primavera.cloud.azure.client | Configura i client di trasporto sotto ogni SDK di Azure. |
| primavera.cloud.azure.credential | Configura come eseguire l'autenticazione con Microsoft Entra ID. |
| primavera.cloud.azure.profile | Configura l'ambiente cloud di Azure. |
| primavera.cloud.azure.proxy | Configura le opzioni del proxy, si applicano a tutti i client Azure SDK. |
| primavera.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 spring.cloud.azure.cosmos.retry. |
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-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 un bom per tutte le librerie 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-migratordurante 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:convalida-avviamento-molla | 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 un bom per tutte le librerie 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-migratordurante 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:convalida-avviamento-molla | 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.activedirectoryaspring.cloud.azure.active-directory. - Viene aggiunta una nuova proprietà
spring.cloud.azure.active-directory.enabledper 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.tipo-di-applicazione |
| 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.nome-utente attributo | spring.cloud.azure.active-directory.attributo-nome-utente |
Il tipo di valore delle proprietà seguenti viene modificato da
longaDuration:jwt-connect-timeoutjwt-read-timeoutjwk-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 (opzione per utilizzare membri transitivi nei gruppi utente)
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. Caso 1
Per la versione 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 la versione 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 un bom per tutte le librerie 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-migratordurante 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:convalida-avviamento-molla | 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.b2caspring.cloud.azure.active-directory.b2c. - Viene aggiunta una nuova proprietà
spring.cloud.azure.active-directory.b2c.enabledper consentire/disabilitare le 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.tipo-di-concessione-autorizzazione> | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.tipo-di-concessione-autorizzazione> |
| azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME>ambiti | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME>ambiti |
| 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.b2cflussi utente | spring.cloud.azure.active-directory.b2cflussi utente |
| azure.activedirectory.b2c.nome-utente-nome-attributo | spring.cloud.azure.active-directory.b2c.nome-utente-nome-attributo |
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
longaDuration:- jwt-connessione-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 un bom per tutte le librerie 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-migratordurante 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.cosmosmodalità connessione | spring.cloud.azure.cosmosmodalità connessione |
| azure.cosmoslivello di coerenza | spring.cloud.azure.cosmoslivello di coerenza |
| azure.cosmos.database | primavera.cloud.azure.cosmos.database |
| azure.cosmos.key | .key spring.cloud.azure.cosmos |
| azure.cosmos.populate-query-metrics | spring.cloud.azure.cosmos.populate-query-metrics |
| azure.cosmos.uri | spring.cloud.azure.cosmosendpoint |
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 un bom per tutte le librerie 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-migratordurante 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.keyvaultchiavi con distinzione tra maiuscole e minuscole | 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.keyvaultabilitato | spring.cloud.azure.keyvault.secret.property-source-enabled e spring.cloud.azure.keyvault.secret.property-source-enabled |
| azure.keyvault.order | Non più supportato. Usare invece l'ordine in property-source[n]. |
| azure.keyvaultintervallo di aggiornamento | 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.keyvaultaspring.cloud.azure.keyvault.secret. -
spring.cloud.azure.keyvault.secret.enabledviene usato per abilitare tutte le funzionalità dei segreti dell'insieme di credenziali delle chiavi, tra cui configurare i fagioli client segreti di Key Vault( ad esempioSecretClienteSecretAsyncClient) e aggiungereKeyVaultPropertySourceinConfigurableEnvironment. -
spring.cloud.azure.keyvault.secret.property-source-enabledviene usato per abilitare tutti iKeyVaultPropertySource. Avrà effetto solo quandospring.cloud.azure.keyvault.secret.enabled=true. - Per le proprietà comuni di Azure( ad esempio
client,proxy,retry,credential,profile) e le proprietà dell'insieme di credenziali delle chiavi (ad esempioendpoint,service-version). Sespring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAMEnon è configurato, verrà usatospring.cloud.azure.keyvault.secret.PROPERTY_NAME. -
spring.cloud.azure.keyvault.secret.property-sources[n].resourceè specifico di una risorsa di Azure univoca, quindi, se non è configurato, 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 un bom per tutte le librerie 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-migratordurante 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 un bom per tutte le librerie 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-migratordurante 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.nome-account | 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.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
| com.azure.spring.autoconfigure.storage.resource.BlobStorageResource | com.azure.spring.core.resource.StorageBlobResource |
| com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
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 un bom per tutte le librerie 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-migratordurante 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.nome-account | 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.fileshareendpoint |
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.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
| com.azure.spring.autoconfigure.storage.resource.FileStorageResource | com.azure.spring.core.resource.StorageFileResource |
| com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
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 un bom per tutte le librerie 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-migratordurante 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 |
|---|---|
| primavera.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.eventhubsstringa di connessione |
| 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}
A:
spring:
cloud:
azure:
eventhubs:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
processor:
checkpoint-store:
container-name: ${AZURE_STORAGE_CONTAINER_NAME}
account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
Nota
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura, ad esempio per database, cache, messaggistica o servizi di intelligenza artificiale, richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi non presenti in altri flussi. Usare questo flusso solo quando le opzioni più sicure, ad esempio le identità gestite per le connessioni senza password o senza chiave, non sono valide. Per le operazioni del computer locale, preferire le identità utente per le connessioni senza password o senza chiave.
Modifiche api
- Per le modifiche alle annotazioni del listener, vedere la guida alla migrazione di <<migrazione-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> libreria.
- Eliminare
EventHubOperationcon la funzione di sottoscrizione spostata nella classeEventHubsMessageListenerContainere la funzione di invio è stata spostata inEventHubsTemplate. - Rinominare
EventHubInboundChannelAdaptercomeEventHubsInboundChannelAdapterper 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
CheckpointConfigstile 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#setMaxSizeeEventHubsContainerProperties#getBatch#setMaxWaitTimenel 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_timeaazure_eventhubs_batch_converted_enqueued_time. - Modificare l'intestazione del messaggio da
azure_eventhub_offsetaazure_eventhubs_batch_converted_offset. - Modificare l'intestazione del messaggio da
azure_eventhub_sequence_numberaazure_eventhubs_batch_converted_sequence_number. - Modificare l'intestazione del messaggio da
azure_partition_keyaazure_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 modalità checkpoint
BATCHfunziona solo in modalità di utilizzo batch, che può essere abilitata passandoListenerMode.BATCHal 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
EventHubsInboundChannelAdaptercodice 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; } }DefaultMessageHandlercodice 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 un bom per tutte le librerie spring cloud di Azure, vedere la sezione bom
.
Modifiche api
- Eliminare
EventHubOperationcon la funzione di sottoscrizione spostata nella classeEventHubsMessageListenerContainere la funzione di invio è stata spostata inEventHubsTemplate. - Rinominare
EventHubInboundChannelAdaptercomeEventHubsInboundChannelAdapterper 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
CheckpointConfigstile 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#setMaxSizeeEventHubsContainerProperties#getBatch#setMaxWaitTimenel 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_timeaazure_eventhubs_batch_converted_enqueued_time. - Modificare l'intestazione del messaggio da
azure_eventhub_offsetaazure_eventhubs_batch_converted_offset. - Modificare l'intestazione del messaggio da
azure_eventhub_sequence_numberaazure_eventhubs_batch_converted_sequence_number. - Modificare l'intestazione del messaggio da
azure_partition_keyaazure_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 modalità checkpoint
BATCHfunziona solo in modalità di utilizzo batch, che può essere abilitata passandoListenerMode.BATCHal 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 un bom per tutte le librerie 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-migratordurante 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 |
|---|---|
| primavera.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-tentativi | 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= fisso 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= fisso o esponenziale |
| primavera.cloud.azure.servicebus.retry-options.max-ritardo | 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
ServiceBusQueueOperationeServiceBusTopicOperationcon la funzione di sottoscrizione spostata nella classeServiceBusMessageListenerContainere la funzione di invio spostata inServiceBusTemplate. - Eliminare
ServiceBusQueueInboundChannelAdaptereServiceBusTopicInboundChannelAdaptere spostare la funzionalità per l'ascolto di un'entità coda/argomento del 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 API
ServiceBusQueueOperation#setCheckpointConfigeServiceBusTopicOperation#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 aMANUALmodalità di checkpoint e per abilitarla attiverà la modalità diRECORD. - Eliminare le API
ServiceBusQueueOperatio#setClientConfigeServiceBusTopicOperation#setClientConfig. Per configurare laServiceBusProcessorClientsottostante usata dall'adattatore del canale in ingresso, gli utenti possono invece usareServiceBusContainerProperties. - Eliminare
CompletableFuturesupporto inServiceBusTemplateeDefaultMessageHandler, supportareReactor. - Aggiungere una nuova API di
ServiceBusTemplate#setDefaultEntityTypeper specificare il tipo di entità, necessario quando non viene fornito alcun bean diPropertiesSupplier<String, ProducerProperties>per ilProducerProperties#entityType. - Eliminare l'intestazione del messaggio
AzureHeaders.RAW_ID. Usare 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
ServiceBusInboundChannelAdaptercodice di esempio:Codice legacy dell'uso di
ServiceBusQueueInboundChannelAdapteroServiceBusTopicInboundChannelAdapter: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; } }DefaultMessageHandlercodice 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 un bom per tutte le librerie spring cloud di Azure, vedere la sezione bom
.
Modifiche api
- Eliminare
ServiceBusQueueOperationeServiceBusTopicOperationcon la funzione di sottoscrizione spostata nella classeServiceBusMessageListenerContainere la funzione di invio spostata inServiceBusTemplate. - Eliminare
ServiceBusQueueInboundChannelAdaptereServiceBusTopicInboundChannelAdaptere spostare la funzionalità per l'ascolto di un'entità coda/argomento del 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 API
ServiceBusQueueOperation#setCheckpointConfigeServiceBusTopicOperation#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 aMANUALmodalità di checkpoint e per abilitarla attiverà la modalità diRECORD. - Eliminare le API
ServiceBusQueueOperation#setClientConfigeServiceBusTopicOperation#setClientConfig. Per configurare laServiceBusProcessorClientsottostante usata dall'adattatore del canale in ingresso, gli utenti possono invece usareServiceBusContainerProperties. - Eliminare
CompletableFuturesupporto inServiceBusTemplateeDefaultMessageHandler, supportareReactor. - Aggiungere una nuova API di
ServiceBusTemplate#setDefaultEntityTypeper specificare il tipo di entità, necessario quando non viene fornito alcun bean diPropertiesSupplier<String, ProducerProperties>per ilProducerProperties#entityType. - Eliminare l'intestazione del messaggio
AzureHeaders.RAW_ID. Usare 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 un bom per tutte le librerie 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-migratordurante 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 |
|---|---|
| primavera.cloud.azure.storage.account | spring.cloud.azure.storage.queue.nome-account |
| 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
StorageQueueOperatione fornireStorageQueueTemplate. - Eliminare
checkpoint-modeconfigurazione inStorageQueueTemplate, supporta solo la modalità diMANUAL.
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.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
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 un bom per tutte le librerie spring cloud di Azure, vedere la sezione bom
.
Modifiche api
- Eliminare
StorageQueueOperatione fornireStorageQueueTemplate. - Eliminare
checkpoint-modeconfigurazione inStorageQueueTemplate, supporta solo la modalità diMANUAL.
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.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
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 un bom per tutte le librerie 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-migratordurante 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 gestore di associazione viene rinominato da: eventhub in 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 |
|---|---|
| primavera.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.eventhubsstringa di connessione |
| 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.consumermodalità checkpoint | 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 configurazione start-position viene modificato anche da un'enumerazione di com.azure.spring.integration.core.api.StartPosition a un map di StartPositionProperties per ogni partizione. Pertanto, la chiave è l'ID partizione e il valore è di com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties che include proprietà di offset, numero di sequenza, ora di data accodata e se inclusivo.
Esempi di migrazione della configurazione
Per usare la 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
Nota
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura, ad esempio per database, cache, messaggistica o servizi di intelligenza artificiale, richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi non presenti in altri flussi. Usare questo flusso solo quando le opzioni più sicure, ad esempio le identità gestite per le connessioni senza password o senza chiave, non sono valide. Per le operazioni del computer locale, preferire le identità utente per le connessioni senza password o senza chiave.
Se si usano entità di sicurezza anziché stringhe 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 recupera la stringa di connessione dello spazio dei nomi specificato con ARM. Alla fine l'applicazione usa la stringa di connessione recuperata 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 di 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 ad ARM e recuperare le stringhe di connessione in cui è necessario il ruolo Contributor per le entità. L'altro usa 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 ruolo Contributor non è più necessario, mentre altri ruoli correlati Data 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, consumerso 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, consumerso 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 all'entità di sicurezza necessaria Data ruoli 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, consumerso 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-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 un bom per tutte le librerie 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-migratordurante 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-topice ora vengono unite in un'unica spring-cloud-azure-stream-binder-servicebus.
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 |
|---|---|
| primavera.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-tentativi | 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= fisso 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= fisso o esponenziale |
| primavera.cloud.azure.servicebus.retry-options.max-ritardo | 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.* | primavera.cloud.stream.servicebus.bindings.* |
| spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer. di concorrenza | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-sessioni-simultanee/max-chiamate-simultanee |
| spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.modalità checkpoint | spring.cloud.stream.servicebus.bindings.binding-name.consumer.completamento automatico |
| primavera.cloud.stream.servicebus.topic.bindings.* | primavera.cloud.stream.servicebus.bindings.* |
| spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer. di concorrenza | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-sessioni-simultanee/max-chiamate-simultanee |
| 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 a RECORD modalità checkpoint e viceversa la modalità di 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
Nota
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura, ad esempio per database, cache, messaggistica o servizi di intelligenza artificiale, richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi non presenti in altri flussi. Usare questo flusso solo quando le opzioni più sicure, ad esempio le identità gestite per le connessioni senza password o senza chiave, non sono valide. Per le operazioni del computer locale, preferire le identità utente per le connessioni senza password o senza chiave.
Se si usano entità di sicurezza anziché stringhe 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 recupera la stringa di connessione dello spazio dei nomi specificato con ARM. Alla fine l'applicazione usa la stringa di connessione recuperata per connettersi al bus di servizio di Azure. In questo modo l'entità di sicurezza fornita deve essere concessa con il ruolo collaboratore collaboratore per recuperare lo spazio dei nomi del 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 ad ARM e recuperare le stringhe di connessione in cui è necessario il ruolo Contributor 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 ruolo Contributor non è più necessario, mentre altri ruoli correlati Data 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, consumerso 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, consumerso 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 all'entità di sicurezza necessaria Data ruoli 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, consumerso 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 del messaggio
AzureHeaders.RAW_ID. Usare 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 libreria com.azure.spring:azure-spring-cloud-messaging non è pronta per la versione 4.0. La funzione delle annotazioni del listener è in fase di riprogettazione, pertanto le annotazioni @AzureMessageListener, @AzureMessageListenerse @EnableAzureMessaging non sono attualmente supportate.