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 a Spring Cloud Azure 4.0 dalle librerie legacy Azure Spring.
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 Azure 4.0, vedere la guida per sviluppatori 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. Man mano che Azure è maturo ed è stato abbracciato 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 presenti nelle librerie di Spring Cloud Azure.
Esistono diverse aree di feedback coerenti espresse nelle librerie spring cloud Azure. L'aspetto più importante è che le librerie per i 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 Azure, è stato introdotto un set di linee guida per la progettazione per garantire che le librerie Spring Cloud Azure abbiano un'atmosfera naturale e idiotica rispetto all'ecosistema Spring. Altri dettagli sono disponibili nella documentazione design 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 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 Azure o 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 ufficiale o coerente per chiamare tutte le librerie spring cloud Azure. Alcuni di essi sono stati chiamati Azure Spring Boot e alcuni di essi Spring on Azure. Dalla versione 4.0 è iniziato a usare il nome del progetto Spring Cloud Azure per rappresentare tutte le librerie Spring Azure.
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>7.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nota
Se si usa Spring Boot 4.0.x, assicurarsi di impostare la spring-cloud-azure-dependencies versione su 7.1.0.
Se si usa Spring Boot 3.5.x, assicurarsi di impostare la spring-cloud-azure-dependencies versione su 6.1.0.
Se si usa Spring Boot 3.1.x-3.5.x, assicurarsi di impostare la spring-cloud-azure-dependencies versione su 5.25.0.
Se si usa Spring Boot 2.x, assicurarsi di impostare la spring-cloud-azure-dependencies versione su 4.20.0.
Questo Bill of Material (BOM) deve essere configurato nella sezione <dependencyManagement> del file pom.xml. In questo modo, tutte le dipendenze di Spring Cloud Azure usano la stessa versione.
Per altre informazioni sulla versione usata per questa distinta base, vedere Which Version of Spring Cloud Azure Should I Use.
Modifiche all'artefatto: rinominato/aggiunto/eliminato
Gli ID gruppo sono gli stessi per le librerie spring cloud moderne e legacy Azure. Sono tutti com.azure.spring. Gli ID degli 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 sono stati aggiunti 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 Supporto Redis. |
| azure-spring-cloud-starter-eventhubs-kafka | non applicabile | Questo artefatto è stato eliminato, per l'uso di kafka, è sufficiente aggiungere spring kafka, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Per altre informazioni sull'utilizzo, vedere Spring Cloud Azure supporto Kafka. |
| azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Rinominato l'artefatto per aggiungere integration, che indica l'uso di Spring Integration con Hub eventi. |
| azure-spring-cloud-starter-servicebus | spring-cloud-azure-starter-integration-servicebus | Rinominato l'artefatto per aggiungere integration, che indica l'uso di Spring Integration con Service Bus. |
| 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 spring cloud Azure dell'attuatore appena aggiunto. |
| non applicabile | spring-cloud-azure-override-autoconfigure | L'artefatto spring cloud Azure configurazione automatica dell'attuatore appena aggiunto, inclusa la configurazione automatica per l'attuatore. |
| non applicabile | primavera-cloud-azure-autoconfigure | È stato aggiunto l'elemento Spring Cloud Azure AutoConfigure, tra cui tutte le configurazioni auto per i client SDK, il supporto spring security, il supporto Spring Data e il supporto spring integration. |
| non applicabile | primavera-nuvola-azure-core | È stato aggiunto l'elemento Spring Cloud Azure Core, incluse tutte le funzionalità di base. |
| non applicabile | spring-cloud-azure-resourcemanager | Appena aggiunto Resource Manager artefatto. Si tratta della libreria Core che usa Azure Resource Manager per leggere i metadati e creare risorse. |
| non applicabile | spring-cloud-azure-service | È stato aggiunto l'artefatto di Spring Cloud Azure Service, incluse le astrazioni per i servizi Azure. |
| non applicabile | configurazione dell'app spring-cloud-azure-starter | Appena aggiunto starter per l'uso di Azure App Configuration client SDK. |
| non applicabile | primavera-nuvola-azzurra-starter-cosmos | Appena aggiunto starter per l'uso di Azure Cosmos DB client SDK. |
| non applicabile | spring-cloud-azure-starter-eventhubs | Appena aggiunto starter per l'uso di Azure Event Hubs client SDK. |
| non applicabile | spring-cloud-azure-starter-servicebus | Appena aggiunto starter per l'uso di Azure Service Bus client SDK. |
| non applicabile | spring-cloud-azure-starter-storage-blob | Nuovo strumento di avvio per l'uso di Azure Storage client BLOB SDK. |
| non applicabile | spring-cloud-azure-starter-storage-file-share | Appena aggiunto lo starter per l'uso di Azure Storage client di File Share SDK. |
| non applicabile | spring-cloud-azure-starter-storage-queue | Appena aggiunto starter per l'uso di Azure Storage client Queue SDK. |
| non applicabile | spring-cloud-azure-starter-stream-eventhubs | Nuovo strumento di avvio per l'uso di Azure Event Hubs Spring Cloud Stream Binder. |
| non applicabile | spring-cloud-azure-starter-stream-servicebus | Strumento di avvio appena aggiunto per l'uso di Azure Service Bus Spring Cloud Stream Binder |
| non applicabile | spring-cloud-azure-stream-binder-eventhubs-core | È stato appena aggiunto l'artefatto principale di Spring Cloud Stream per Azure Event Hubs. |
Modifiche alle dipendenze
Alcune dipendenze non necessarie sono state incluse negli artefatti legacy, che sono state rimosse nelle moderne librerie 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 Azure Service SDK. 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 Azure Services. 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 Azure servizi di messaggistica, per eseguire operazioni di messaggistica sono necessari i ruoli correlati Data. Per Azure Spring Apps hub eventi di flusso/Service Bus librerie binder, è necessario Contributor ruolo quando è necessaria la funzione di creazione automatica delle risorse. Per altre informazioni, vedere Azure ruoli predefiniti.
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 della libreria client 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à non 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
La < moderna /> consente di definire proprietà applicabili a tutte le Azure SDKs nello spazio dei nomi 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 Azure SDK. |
| primavera.cloud.azure.credential | Configura come eseguire l'autenticazione con Microsoft Entra ID. |
| primavera.cloud.azure.profile | Configura l'ambiente cloud Azure. |
| primavera.cloud.azure.proxy | Configura le opzioni proxy, si applica 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 Spring Cloud Azure proprietà di configurazione.
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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 dopo la moderna libreria 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 la nuova proprietà
spring.cloud.azure.active-directory.enabledper abilitare/disabilitare Microsoft Entra funzionalità correlate. 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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 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 l'abilitazione/disabilitazione Azure funzionalità correlate ad 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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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-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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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à del segreto Key Vault, includere la configurazione dei fagioli client segreti 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 Azure proprietà comuni, ad esempio
client,proxy,retry,credential,profile) e proprietà Key Vault(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 Azure univoca, quindi, se non è configurata, non otterrà valore da altre posizioni.
da azure-spring-boot-starter-servicebus-jms a spring-cloud-azure-starter-servicebus-jms
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-servicebus-jms dalla versione 3 di azure-spring-boot-starter-servicebus-jms.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni introduzione
e vantaggi della migrazione . - Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione.
- Per informazioni su come usare un bom per tutte le librerie spring cloud Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 Azure Event Hubs. - 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 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 Azure Event Hubs. - 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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 ascoltare un'entità coda/argomento Service Bus 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. Utilizzare inveceServiceBusMessageHeaders.MESSAGE_ID.
La tabella seguente illustra i mapping delle classi da azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus:
| Classe legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter | com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
| com.azure.spring.integration.core.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
| com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
Frammento di codice di esempio
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 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 ascoltare un'entità coda/argomento Service Bus 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. Utilizzare inveceServiceBusMessageHeaders.MESSAGE_ID.
La tabella seguente illustra i mapping delle classi da azure-spring-integration-servicebus a spring-integration-azure-servicebus:
| Classe legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter | com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
| com.azure.spring.integration.core.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
| com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
da azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
Questa guida è progettata per facilitare la migrazione a spring-cloud-azure-starter-integration-storage-queue dalla versione 2 di azure-spring-cloud-starter-storage-queue.
Per informazioni generali, usare i collegamenti seguenti:
- Per una panoramica delle modifiche nella versione 4.0, vedere le sezioni introduzione
e vantaggi della migrazione . - Per altre informazioni sulle modifiche alla strategia nella denominazione del progetto, vedere la sezione Modifiche alla denominazione.
- Per informazioni su come usare un bom per tutte le librerie spring cloud Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 il connection string 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 a Azure Resource Manager (ARM) con l'entità di sicurezza fornita e quindi recupererà il connection string dello spazio dei nomi specificato con ARM. Alla fine l'applicazione usa il connection string recuperato per connettersi a Azure Event Hubs. In questo modo, l'entità di sicurezza fornita deve essere concessa con il ruolo Contributor per recuperare lo spazio dei nomi Azure Event Hubs 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 a Microsoft Entra ID e quindi connettersi direttamente a Azure Event Hubs. 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 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 Convert single-tenant app in multi-tenant in Microsoft Entra ID.
Sono necessarie la configurazione moderna, le proprietà per Azure ID sottoscrizione e 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 Convert single-tenant app in multi-tenant in Microsoft Entra ID.
È anche possibile eseguire la migrazione per eseguire l'autenticazione e l'autorizzazione con Microsoft Entra ID direttamente senza effettuare una deviazione verso 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 Convert single-tenant app 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 Azure, vedere la sezione BOM.
- Per informazioni su come gestire l'autenticazione in Spring Cloud Azure 4.0, vedere la sezione Modificare l'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 a Azure Resource Manager (ARM) con l'entità di sicurezza fornita e quindi recupererà il connection string dello spazio dei nomi specificato con ARM. Alla fine l'applicazione usa il connection string recuperato per connettersi a Azure Service Bus. In questo modo l'entità di sicurezza fornita deve essere concessa con il ruolo Contributor per recuperare lo spazio dei nomi Azure Service Bus 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 a Microsoft Entra ID e quindi connettersi direttamente al Azure Service Bus. 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 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 Convert single-tenant app in multi-tenant in Microsoft Entra ID.
Sono necessarie la configurazione moderna, le proprietà per Azure ID sottoscrizione e 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 Convert single-tenant app in multi-tenant in Microsoft Entra ID.
È anche possibile eseguire la migrazione per eseguire l'autenticazione e l'autorizzazione con Microsoft Entra ID direttamente senza effettuare una deviazione verso 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 Convert single-tenant app 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. Utilizzare inveceServiceBusMessageHeaders.MESSAGE_ID.
Nella tabella seguente vengono illustrati i mapping delle classi da azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs.
| Classe legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
| com.azure.spring.integration.core.api.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
azure-spring-cloud-messaging
La 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.