Guide de migration pour Spring Cloud Azure 4.0
Ce guide vous aide à migrer vers Spring Cloud Azure 4.0 à partir de bibliothèques Azure Spring héritées.
Introduction
Nous allons appeler des bibliothèques dont l’ID de groupe et l’ID d’artefact suivent le modèle des bibliothèques modernes, ainsi que celles avec le modèle com.azure.spring:azure-spring-boot-*
com.azure.spring:spring-cloud-azure-*
, com.azure.spring:azure-spring-cloud-*
ou com.azure.spring:azure-spring-integration-*
les bibliothèques héritées.
Ce guide se concentre sur les comparaisons côte à côte pour des configurations similaires entre les bibliothèques modernes et héritées.
La connaissance du com.azure.spring:azure-spring-boot-*
package ou com.azure.spring:azure-spring-integration-*
de l’utilisation com.azure.spring:azure-spring-cloud-*
du package est supposée.
Si vous débutez avec les bibliothèques Spring Cloud Azure 4.0, consultez le guide du développeur Spring Cloud Azure plutôt que ce guide.
Avantages de la migration
Une question naturelle à poser lorsque vous envisagez d’adopter une nouvelle version ou bibliothèque est ses avantages. À mesure qu’Azure a mûri et a été adopté par un groupe plus diversifié de développeurs, nous nous sommes concentrés sur l’apprentissage des modèles et des pratiques afin de mieux prendre en charge la productivité des développeurs et de comprendre les lacunes que présentent les bibliothèques Azure Spring Cloud.
Plusieurs domaines de commentaires cohérents ont été exprimés dans les bibliothèques Azure Spring Cloud. Le plus important est que les bibliothèques pour différents services Azure n’ont pas activé l’ensemble complet de configurations. En outre, l’incohérence du nommage de projet, des ID d’artefacts, des versions et des configurations a rendu la courbe d’apprentissage raide.
Pour améliorer l’expérience de développement dans les bibliothèques Azure Spring Cloud, un ensemble de directives de conception a été introduit pour s’assurer que les bibliothèques Azure Spring Cloud ont une sensation naturelle et idiomatique par rapport à l’écosystème Spring. Vous trouverez plus d’informations dans le document de conception pour ceux qui vous intéressent.
Spring Cloud Azure 4.0 offre l’expérience partagée entre les bibliothèques qui s’intègrent à différents projets Spring, par exemple Spring Boot, Spring Integration, Spring Cloud Stream, et ainsi de suite. L’expérience partagée comprend :
- Un boM unifié pour inclure toutes les bibliothèques Spring Cloud Azure 4.0.
- Convention d’affectation de noms cohérente pour les artefacts.
- Un moyen unifié de configurer les informations d’identification, le proxy, les nouvelles tentatives, l’environnement cloud et les paramètres de couche de transport.
- La prise en charge de toutes les méthodes d’authentification prises en charge par un service Azure ou le Kit de développement logiciel (SDK) Azure Service.
Vue d’ensemble
Ce guide de migration se compose des sections suivantes :
- Modifications de nommage pour Spring Cloud Azure 4.0
- Modifications d’artefact : renommé / ajouté / supprimé
- Changements de dépendances
- Modifications de l’authentification
- Propriétés de configuration
- Changements cassants de l’API
- Modifications apportées à la bibliothèque
Modifications des dénominations
Il n’y a jamais eu de nom cohérent ou officiel pour appeler toutes les bibliothèques Azure Spring Cloud. Certains d’entre eux ont été appelés Azure Spring Boot
et certains d’entre eux Spring on Azure
. Depuis la version 4.0, nous avons commencé à utiliser le nom Spring Cloud Azure
du projet pour représenter toutes les bibliothèques Azure Spring.
Nomenclature
Nous avons utilisé pour expédier deux BOM pour nos bibliothèques, le azure-spring-boot-bom
et azure-spring-cloud-dependencies
, mais nous avons combiné ces deux BOM en un boM depuis 4.0, le spring-cloud-azure-dependencies
. Ajoutez une entrée dans la dependencyManagement
section de votre projet pour tirer parti de la gestion des dépendances.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>4.14.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Remarque
Si vous utilisez Spring Boot 3.x, veillez à définir la spring-cloud-azure-dependencies
version 5.8.0
sur .
Pour plus d’informations sur la spring-cloud-azure-dependencies
version, consultez La version de Spring Cloud Azure à utiliser.
Modifications d’artefact : renommé / ajouté / supprimé
Les ID de groupe sont identiques pour les bibliothèques Azure Spring Cloud modernes et héritées. Ils sont tous com.azure.spring
. Les ID d’artefact pour les bibliothèques Azure Spring Cloud modernes ont changé. Selon le projet Spring auquel il appartient, Spring Boot, Spring Integration ou Spring Cloud Stream, le modèle d’ID d’artefact peut être spring-cloud-azure-starter-[service]
, spring-integration-azure-[service]
ou spring-cloud-azure-stream-binder-[service]
. Les starters hérités pour chacun possèdent un ID d’artefact suivant le modèle azure-spring-*
. Cela fournit un moyen rapide et accessible pour vous aider à comprendre, en un clin d’œil, que vous utilisiez des démarrages modernes ou hérités.
Dans le processus de développement d’Azure Spring Cloud 4.0, nous avons renommé certains artefacts pour les faire suivre les nouvelles conventions d’affectation de noms, supprimé certains artefacts afin que la fonctionnalité puisse être placée dans un artefact plus approprié et ajouté de nouveaux artefacts pour mieux servir certains scénarios.
Le tableau suivant présente les mappages entre l’ID d’artefact hérité et l’ID d’artefact moderne :
ID d’artefact hérité | ID d’artefact moderne | Description |
---|---|---|
azure-spring-boot-starter | spring-cloud-azure-starter | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel spring-cloud-azure-starter artefact. |
azure-spring-boot-starter-active-directory | spring-cloud-azure-starter-active-directory | Renommage de l’artefact. |
azure-spring-boot-starter-active-directory-b2c | spring-cloud-azure-starter-active-directory-b2c | Renommage de l’artefact. |
azure-spring-boot-starter-cosmos | spring-cloud-azure-starter-data-cosmos | Renommage de l’artefact à ajouter data , indiquant à l’aide de Spring Data Azure Cosmos DB. |
azure-spring-boot-starter-keyvault-certificates | Non applicable | Non inclus dans cette version, mais sera pris en charge dans la version ultérieure. |
azure-spring-boot-starter-keyvault-secrets | spring-cloud-azure-starter-keyvault-secrets | Renommage de l’artefact. |
azure-spring-boot-starter-servicebus-jms | spring-cloud-azure-starter-servicebus-jms | Renommage de l’artefact. |
azure-spring-boot-starter-storage | spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
L’artefact hérité contient les fonctionnalités de Stockage blob et de partage de fichiers, il a été splicé en deux artefacts distincts dans la version 4.0, spring-cloud-azure-starter-storage-blob et spring-cloud-azure-starter-storage-file-share. |
azure-spring-boot | Non applicable | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel spring-cloud-azure-autoconfigure artefact. |
azure-spring-cloud-autoconfigure | Non applicable | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel spring-cloud-azure-autoconfigure artefact. |
azure-spring-cloud-context | Non applicable | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans les nouveaux spring-cloud-azure-autoconfigure artefacts spring-cloud-azure-resourcemanager . |
azure-spring-cloud-messaging | spring-messaging-azure | L’annotation de l’écouteur de messagerie a été supprimée. |
azure-spring-cloud-starter-cache | Non applicable | Cet artefact a été supprimé, pour utiliser redis, ajoutez simplement spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager et spring-cloud-azure-starter. Pour plus d’informations sur l’utilisation, consultez la prise en charge d’Azure Redis Spring Cloud. |
azure-spring-cloud-starter-eventhubs-kafka | Non applicable | Cet artefact a été supprimé, pour utiliser kafka, ajoutez simplement spring kafka, spring-cloud-azure-resourcemanager et spring-cloud-azure-starter. Pour plus d’informations sur l’utilisation, consultez la prise en charge d’Azure Kafka d’Azure Spring Cloud. |
azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Renommage de l’artefact pour ajouter integration , indiquant l’utilisation de Spring Integration avec Event Hubs. |
azure-spring-cloud-starter-servicebus | spring-cloud-azure-starter-integration-servicebus | Renommez l’artefact pour ajouter integration , indiquant l’utilisation de Spring Integration avec Service Bus. |
azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Renommage de l’artefact pour ajouter integration , indiquant l’utilisation de Spring Integration avec Stockage File d’attente. |
azure-spring-cloud-storage | Non applicable | Cet artefact a été supprimé avec toutes les fonctionnalités fusionnées dans le nouvel spring-cloud-azure-autoconfigure artefact. |
azure-spring-cloud-stream-binder-eventhubs | spring-cloud-azure-stream-binder-eventhubs | Cet artefact a été refactorisé à l’aide d’une nouvelle conception, principalement spring-cloud-azure-stream-binder-eventhubs et spring-cloud-azure-stream-binder-eventhubs-core . |
azure-spring-cloud-stream-binder-service-core | spring-cloud-azure-stream-binder-servicebus-core | Renommage de l’artefact. |
azure-spring-cloud-stream-binder-servicebus-queue | spring-cloud-azure-stream-binder-servicebus | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans l’artefact spring-cloud-azure-stream-binder-servicebus . |
azure-spring-cloud-stream-binder-servicebus-topic | spring-cloud-azure-stream-binder-servicebus | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans l’artefact spring-cloud-azure-stream-binder-servicebus . |
azure-spring-integration-core | spring-integration-azure-core | Renommage de l’artefact. |
azure-spring-integration-eventhubs | spring-integration-azure-eventhubs | Renommez l’artefact. |
azure-spring-integration-servicebus | spring-integration-azure-servicebus | Renommez l’artefact. |
azure-spring-integration-storage-queue | spring-integration-azure-storage-queue | Renommez l’artefact. |
Non applicable | spring-cloud-azure-actuator | Artefact Spring Cloud Azure Actuator nouvellement ajouté. |
Non applicable | spring-cloud-azure-actuator-autoconfigure | L’artefact Spring Cloud Azure Actuator AutoConfigure récemment ajouté, y compris la configuration automatique pour l’actionneur. |
Non applicable | spring-cloud-azure-autoconfigure | Nouvel artefact Spring Cloud Azure AutoConfigure, y compris toutes les configurations automatiques pour les clients sdk, prise en charge de Spring Security, prise en charge de Spring Data et prise en charge de Spring Integration. |
Non applicable | spring-cloud-azure-core | Artefact Spring Cloud Azure Core récemment ajouté, y compris toutes les fonctionnalités principales. |
Non applicable | spring-cloud-azure-resourcemanager | Artefact Resource Manager nouvellement ajouté. Il s’agit de la bibliothèque principale à l’aide d’Azure Resource Manager pour lire les métadonnées et créer des ressources. |
Non applicable | spring-cloud-azure-service | Artefact Spring Cloud Azure Service récemment ajouté, y compris les abstractions pour les services Azure. |
Non applicable | spring-cloud-azure-starter-appconfiguration | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure App Configuration. |
Non applicable | spring-cloud-azure-starter-cosmos | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Cosmos DB. |
Non applicable | spring-cloud-azure-starter-eventhubs | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Event Hubs. |
Non applicable | spring-cloud-azure-starter-servicebus | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Service Bus. |
Non applicable | spring-cloud-azure-starter-storage-blob | Démarrage nouvellement ajouté pour l’utilisation de Stockage Azure client du Kit de développement logiciel (SDK) Blob. |
Non applicable | spring-cloud-azure-starter-storage-file-share | Vous venez d’ajouter un démarrage pour utiliser Stockage Azure client sdk de partage de fichiers. |
Non applicable | spring-cloud-azure-starter-storage-queue | Démarrage nouvellement ajouté pour l’utilisation de Stockage Azure client du Kit de développement logiciel (SDK) file d’attente. |
Non applicable | spring-cloud-azure-starter-stream-eventhubs | Nouveau démarrage pour l’utilisation d’Azure Event Hubs Spring Cloud Stream Binder. |
Non applicable | spring-cloud-azure-starter-stream-servicebus | Démarrage nouvellement ajouté pour l’utilisation d’Azure Service Bus Spring Cloud Stream Binder |
Non applicable | spring-cloud-azure-stream-binder-eventhubs-core | Artefact Spring Cloud Stream core récemment ajouté pour Azure Event Hubs. |
Modifications des dépendances
Certaines dépendances inutiles ont été incluses dans les artefacts hérités, que nous avons supprimés dans les bibliothèques Spring Cloud Azure 4.0 modernes. Veillez à ajouter manuellement les dépendances supprimées à votre projet pour éviter les blocages.
Les bibliothèques qui ont des modifications de dépendance sont les suivantes :
- spring-cloud-azure-starter
- spring-cloud-azure-starter-active-directory
- spring-cloud-azure-starter-active-directory-b2c
Modifications de l’authentification
Spring Cloud Azure 4.0 prend en charge toutes les méthodes d’authentification que chaque Kit de développement logiciel (SDK) du service Azure prend en charge. Il vous permet de configurer des informations d’identification de jeton globales, ainsi que de fournir les informations d’identification du jeton à chaque niveau de service. Toutefois, les informations d’identification ne sont pas nécessaires pour configurer Spring Cloud Azure 4.0, car elles peuvent appliquer les informations d’identification stockées dans un environnement de développement local ou une identité managée dans Azure Services. Assurez-vous que le principal a reçu une autorisation suffisante pour accéder aux ressources Azure cibles.
Remarque
Lorsque vous attribuez des rôles aux principaux de sécurité pour interagir avec les services de messagerie Azure, les Data
rôles associés sont nécessaires pour effectuer des opérations de messagerie. Pour les bibliothèques Azure Spring Apps Stream Event Hubs / Service Bus Binder, Contributor
le rôle est requis lorsque la fonction de création automatique de ressources est nécessaire. Pour plus d’informations, voir Rôles intégrés Azure.
Les informations d’identification chaînées sont DefaultAzureCredential
configurées automatiquement par défaut et sont utilisées par tous les composants si aucune information d’authentification supplémentaire n’est spécifiée. Pour plus d’informations, consultez la section DefaultAzureCredential de la bibliothèque de client Azure Identity pour Java.
Propriétés de configuration
Migration des propriétés
Nous avons créé un fichier additional-spring-configuration-metadata.json pour faciliter la migration des propriétés lors de l’utilisation avec spring-boot-properties-migrator
. Tout d’abord, ajoutez la migration de propriété suivante à votre application :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
Ou, si vous utilisez Gradle :
runtime("org.springframework.boot:spring-boot-properties-migrator")
Si vous exécutez l’application, elle identifie les propriétés qui ne sont plus gérées par Spring Cloud Azure. S’il existe un remplacement, il remapira temporairement la propriété pour vous avec un avertissement. S’il n’y a pas de remplacement, un rapport d’erreurs vous fournira plus d’informations. Dans les deux cas, la configuration doit être mise à jour et la dépendance supprimée une fois que vous avez mis à jour la configuration.
Avant de continuer, il est judicieux d’utiliser la fonctionnalité de recherche de votre IDE pour double-case activée que vous n’utilisez pas l’une des propriétés que vous avez migrées dans un test d’intégration.
Remarque
Nous avons modifié de nombreuses propriétés de configuration dans cette modification. L’utilisation de l’outil spring-boot-properties-migrator
vous aidera à faciliter votre migration.
Configurations globales
La version moderne spring-cloud-azure-starter
vous permet de définir des propriétés qui s’appliquent à tous les Kits de développement logiciel (SDK) Azure dans l’espace de noms spring.cloud.azure
. Cette fonctionnalité n’a pas été prise en charge dans l’ancien azure-spring-boot-starter
. Les configurations globales peuvent être divisées en cinq catégories, indiquées dans le tableau suivant :
Préfixe | Description |
---|---|
spring.cloud.azure.client | Configure les clients de transport sous chaque Kit de développement logiciel (SDK) Azure. |
spring.cloud.azure.credential | Configure comment s’authentifier avec l’ID Microsoft Entra. |
spring.cloud.azure.profile | Configure l’environnement cloud Azure. |
spring.cloud.azure.proxy | Configure les options de proxy, s’applique à tous les clients du Kit de développement logiciel (SDK) Azure. |
spring.cloud.azure.retry | Configure les options de nouvelle tentative, s’applique à tous les clients du Kit de développement logiciel (SDK) Azure. Les options de nouvelle tentative ont pris en charge une partie des kits SDK, il n’y a pas spring.cloud.azure.cosmos.retry . |
Pour obtenir la liste complète des configurations, consultez les propriétés de configuration d’Azure Spring Cloud.
Configurer chaque Kit de développement logiciel (SDK)
Pour plus d’informations sur les options de configuration au niveau du Kit de développement logiciel (SDK), utilisez les liens suivants :
- D’azure-spring-boot-starter-active-directory à spring-cloud-azure-starter-active-directory
- D’azure-spring-boot-starter-active-directory-b2c à spring-cloud-azure-starter-active-directory-b2c
- D’azure-spring-boot-starter-cosmos à spring-cloud-azure-starter-data-cosmos
- D’azure-spring-boot-starter-keyvault-secrets à spring-cloud-azure-starter-keyvault-secrets
- D’azure-spring-boot-starter-servicebus-jms à spring-cloud-azure-starter-servicebus-jms
- D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-blob
- D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-file-share
- D’azure-spring-cloud-starter-eventhubs à spring-cloud-azure-starter-integration-eventhubs
- D’azure-spring-cloud-starter-servicebus à spring-cloud-azure-starter-integration-servicebus
- D’azure-spring-cloud-starter-storage-queue à spring-cloud-azure-starter-integration-storage-queue
- À partir d’azure-spring-cloud-stream-binder-eventhubs vers spring-cloud-azure-stream-binder-eventhubs
- D’azure-spring-cloud-stream-binder-servicebus-* à spring-cloud-azure-stream-binder-servicebus
Changements cassants de l’API
Pour plus d’informations sur les changements cassants d’API dans chaque bibliothèque, utilisez les liens suivants :
- D’azure-spring-boot-starter-active-directory à spring-cloud-azure-starter-active-directory
- D’azure-spring-boot-starter-active-directory-b2c à spring-cloud-azure-starter-active-directory-b2c
- D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-blob
- D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-file-share
- D’azure-spring-cloud-starter-eventhubs à spring-cloud-azure-starter-integration-eventhubs
- D’azure-spring-integration-eventhubs à spring-integration-azure-eventhubs
- D’azure-spring-cloud-starter-servicebus à spring-cloud-azure-starter-integration-servicebus
- D’azure-spring-integration-servicebus à spring-integration-azure-servicebus
- D’azure-spring-cloud-starter-storage-queue à spring-cloud-azure-starter-integration-storage-queue
- D’azure-spring-integration-storage-queue à spring-integration-azure-storage-queue
- À partir d’azure-spring-cloud-stream-binder-eventhubs vers spring-cloud-azure-stream-binder-eventhubs
- D’azure-spring-cloud-stream-binder-servicebus-* à spring-cloud-azure-stream-binder-servicebus
Modifications apportées à la bibliothèque
Les changements cassants dans chaque bibliothèque sont introduits comme suit.
D’azure-spring-boot-starter à spring-cloud-azure-starter
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter à partir de la version 3 d’azure-spring-boot-starter.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Changements de dépendances
Certaines dépendances inutiles ont été incluses dans les artefacts hérités, que nous avons supprimés dans les bibliothèques Spring Cloud Azure 4.0 modernes. Veillez à ajouter manuellement les dépendances supprimées à votre projet pour éviter un blocage involontaire.
Le tableau suivant présente les dépendances supprimées :
Dépendances supprimées | Description |
---|---|
org.springframework.boot :spring-boot-starter-validation | Incluez le démarrage de validation si vous souhaitez utiliser le validateur Hibernate. |
D’azure-spring-boot-starter-active-directory à spring-cloud-azure-starter-active-directory
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-active-directory à partir de la version 3 d’azure-spring-boot-starter-active-directory.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Changements de dépendances
Certaines dépendances inutiles dans l’artefact hérité ont été supprimées depuis la bibliothèque Spring Cloud Azure 4.0 moderne. Ajoutez ces dépendances supprimées à votre projet pour éviter un blocage involontaire.
Le tableau suivant présente les dépendances supprimées :
Dépendances supprimées | Description |
---|---|
com.fasterxml.jackson.core :jackson-databind | Ajoutez cette dépendance à votre projet si nécessaire. |
io.projectreactor.netty :reactor-netty | Ajoutez cette dépendance à votre projet si nécessaire. |
org.springframework.boot :spring-boot-starter-validation | Ajoutez cette dépendance à votre projet si nécessaire. |
org.springframework.boot :spring-boot-starter-webflux | Ajoutez cette dépendance à votre projet si nécessaire. |
Modifications de configuration du Kit de développement logiciel (SDK)
Cette section inclut les modifications apportées aux propriétés ajoutées, supprimées et modifiées.
- Les deux points suivants sont les principaux à faire attention à :
- Le préfixe de toutes les propriétés de configuration a changé de
azure.activedirectory
àspring.cloud.azure.active-directory
. - Une nouvelle propriété
spring.cloud.azure.active-directory.enabled
est ajoutée pour activer/désactiver les fonctionnalités associées à Microsoft Entra. La valeur par défaut estfalse
.
Le tableau suivant montre les mappages de propriétés entre azure-spring-boot-starter-active-directory
et spring-cloud-azure-starter-active-directory
:
Propriétés héritées | Propriétés modernes |
---|---|
azure.activedirectory.app-id-uri | spring.cloud.azure.active-directory.app-id-uri |
azure.activedirectory.application-type | spring.cloud.azure.active-directory.application-type |
azure.activedirectory.authorization-clients | spring.cloud.azure.active-directory.authorization-clients |
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type |
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand |
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes |
azure.activedirectory.authenticate-additional-parameters | spring.cloud.azure.active-directory.authenticate-additional-parameters |
azure.activedirectory.base-uri | spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint |
azure.activedirectory.client-id | spring.cloud.azure.active-directory.credential.client-id |
azure.activedirectory.client-secret | spring.cloud.azure.active-directory.credential.client-secret |
azure.activedirectory.graph-membership-uri | Pour plus d’informations, consultez le tableau suivant. |
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-durée de vie | spring.cloud.azure.active-directory.jwk-set-cache-durée de vie. |
azure.activedirectory.jwk-set-cache-refresh-time | spring.cloud.azure.active-directory.jwk-set-cache-refresh-time |
azure.activedirectory.post-logout-redirect-uri | spring.cloud.azure.active-directory.post-logout-redirect-uri |
azure.activedirectory.session-stateless | spring.cloud.azure.active-directory.session-stateless |
azure.activedirectory.redirect-uri-template | spring.cloud.azure.active-directory.redirect-uri-template |
azure.activedirectory.resource-server.claim-to-authority-prefix-map | spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map |
azure.activedirectory.resource-server.principal-claim-name | spring.cloud.azure.active-directory.resource-server.principal-claim-name |
azure.activedirectory.tenant-id | spring.cloud.azure.active-directory.profile.tenant-id |
azure.activedirectory.user-group.allowed-group-ids | spring.cloud.azure.active-directory.user-group.allowed-group-ids |
azure.activedirectory.user-group.allowed-group-names | spring.cloud.azure.active-directory.user-group.allowed-group-names |
azure.activedirectory.user-name-attribute | spring.cloud.azure.active-directory.user-name-attribute |
Le type de valeur des propriétés suivantes est remplacé par
long
Duration
:jwt-connect-timeout
jwt-read-timeout
jwk-set-cache-lifespan
jwk-set-cache-refresh-time
.
Les propriétés suivantes sont supprimées :
- azure.activedirectory.allow-telemetry
- azure.activedirectory.user-group.enable-full-list
- azure.activedirectory.graph-base-uri
- azure.activedirectory.graph-membership-uri
Les propriétés suivantes sont ajoutées :
- 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
Remarque
La fonction d’a azure.activedirectory.graph-membership-uri
été remplacée par 2 propriétés : spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
et spring.cloud.azure.active-directory.user-group.use-transitive-members
. La première propriété est utilisée pour spécifier le nom d’hôte et le deuxième indicateur pour utiliser le chemin d’URL : v1.0/me/memberOf
ou v1.0/me/transitiveMemberOf
.
Voici quelques exemples de migration :
Exemple 1. Cas 1
Pour l’héritage : azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Pour moderne : 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
Exemple 2. Cas 2
Pour l’héritage : azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Pour moderne : 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
Modifications d'API
Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-active-directory
:spring-cloud-azure-starter-active-directory
Classe héritée | Classe moderne |
---|---|
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 |
Cette section répertorie les classes supprimées d’azure-spring-boot-starter-active-directory.
Classe héritée supprimée
- com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
- com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
- com.azure.spring.aad.webapi.validator.AADJwtClaimValidator
D’azure-spring-boot-starter-active-directory-b2c à spring-cloud-azure-starter-active-directory-b2c
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-active-directory-b2c à partir de la version 3 d’azure-spring-boot-starter-active-directory-b2c.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Changements de dépendances
Certaines dépendances inutiles ont été incluses dans les artefacts hérités, que nous avons supprimés dans les bibliothèques Spring Cloud Azure 4.0 modernes. Veillez à ajouter manuellement les dépendances supprimées à votre projet pour éviter un blocage involontaire.
Le tableau suivant présente les dépendances supprimées :
Dépendances supprimées | Description |
---|---|
org.springframework.boot :spring-boot-starter-validation | Incluez le démarrage de validation si vous souhaitez utiliser le validateur Hibernate. |
Modifications de configuration du Kit de développement logiciel (SDK)
Cette section inclut les modifications apportées aux propriétés ajoutées, supprimées et modifiées.
- Les deux points suivants sont les principaux à faire attention à :
- Tous les noms de propriétés de configuration ont changé le préfixe de
azure.activedirectory.b2c
.spring.cloud.azure.active-directory.b2c
- Une nouvelle propriété
spring.cloud.azure.active-directory.b2c.enabled
est ajoutée pour autoriser les fonctionnalités associées à l’activation/désactivation d’Azure AD B2C. La valeur par défaut est false (Faux).
Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-active-directory-b2c
:spring-cloud-azure-starter-active-directory-b2c
Propriétés héritées | Propriétés modernes |
---|---|
azure.activedirectory.b2c.authenticate-additional-parameters | spring.cloud.azure.active-directory.b2c.authenticate-additional-parameters |
azure.activedirectory.b2c.authorization-clients | spring.cloud.azure.active-directory.b2c.authorization-clients |
azure.activedirectory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.authorization-grant-type | spring.cloud.azure.active-directory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.authorization-grant-type |
azure.activedirectory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.scopes | spring.cloud.azure.active-directory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.scopes |
azure.activedirectory.b2c.app-id-uri | spring.cloud.azure.active-directory.b2c.app-id-uri |
azure.activedirectory.b2c.base-uri | spring.cloud.azure.active-directory.b2c.base-uri |
azure.activedirectory.b2c.client-id | spring.cloud.azure.active-directory.b2c.credential.client-id |
azure.activedirectory.b2c.client-secret | spring.cloud.azure.active-directory.b2c.credential.client-secret |
azure.activedirectory.b2c.jwt-connect-timeout | spring.cloud.azure.active-directory.b2c.jwt-connect-timeout |
azure.activedirectory.b2c.jwt-read-timeout | spring.cloud.azure.active-directory.b2c.jwt-read-timeout |
azure.activedirectory.b2c.jwt-size-limit | spring.cloud.azure.active-directory.b2c.jwt-size-limit |
azure.activedirectory.b2c.login-flow | spring.cloud.azure.active-directory.b2c.login-flow |
azure.activedirectory.b2c.logout-success-url | spring.cloud.azure.active-directory.b2c.logout-success-url |
azure.activedirectory.b2c.reply-url | spring.cloud.azure.active-directory.b2c.reply-url |
azure.activedirectory.b2c.tenant-id | spring.cloud.azure.active-directory.b2c.profile.tenant-id |
azure.activedirectory.b2c.user-flows | spring.cloud.azure.active-directory.b2c.user-flow |
azure.activedirectory.b2c.user-name-attribute-name | spring.cloud.azure.active-directory.b2c.user-name-attribute-name |
Suppression des propriétés d’azure-spring-boot-starter-active-directory-b2c :
- azure.activedirectory.b2c.allow-telemetry
- azure.activedirectory.b2c.tenant
Le type de valeur des propriétés suivantes est remplacé par
long
Duration
:- jwt-connect-timeout
- jwt-read-timeout
Modifications d'API
Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-active-directory-b2c
:spring-cloud-azure-starter-active-directory-b2c
Classe héritée | Classe moderne |
---|---|
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 |
D’azure-spring-boot-starter-cosmos à spring-cloud-azure-starter-data-cosmos
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-data-cosmos à partir de la version 3 d’azure-spring-boot-starter-cosmos.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Tous les noms de propriétés de configuration ont changé le préfixe de azure.cosmos
.spring.cloud.azure.cosmos
Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-cosmos
:spring-cloud-azure-starter-data-cosmos
Propriétés héritées | Propriétés modernes |
---|---|
azure.cosmos.connection-mode | spring.cloud.azure.cosmos.connection-mode |
azure.cosmos.consistency-level | spring.cloud.azure.cosmos.consistency-level |
azure.cosmos.database | spring.cloud.azure.cosmos.database |
azure.cosmos.key | spring.cloud.azure.cosmos.key |
azure.cosmos.populate-query-metrics | spring.cloud.azure.cosmos.populate-query-metrics |
azure.cosmos.uri | spring.cloud.azure.cosmos.endpoint |
D’azure-spring-boot-starter-keyvault-secrets à spring-cloud-azure-starter-keyvault-secrets
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-keyvault-secrets à partir de la version 3 d’azure-spring-boot-starter-keyvault-secrets.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Cette section inclut les modifications apportées aux propriétés ajoutées, supprimées et modifiées.
Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-keyvault-secrets
:spring-cloud-azure-starter-keyvault-secrets
Propriétés héritées | Propriétés modernes |
---|---|
azure.keyvault.case-sensitive-keys | spring.cloud.azure.keyvault.secret.property-source[n].respect de la casse |
azure.keyvault.certificate-password | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password |
azure.keyvault.certificate-path | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path |
azure.keyvault.client-id | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id |
azure.keyvault.client-key | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret |
azure.keyvault.enabled | spring.cloud.azure.keyvault.secret.property-source-enabled et spring.cloud.azure.keyvault.secret.property-source-enabled |
azure.keyvault.order | N'est plus pris en charge. Utilisez l’ordre dans property-source[n] à la place. |
azure.keyvault.refresh-interval | spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval |
azure.keyvault.secret-keys | spring.cloud.azure.keyvault.secret.property-source[n].secret-keys |
azure.keyvault.tenant-id | spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id |
azure.keyvault.uri | spring.cloud.azure.keyvault.secret.property-source[n].endpoint |
- Suppression des propriétés de spring-cloud-azure-starter-keyvault-secrets
azure.keyvault.allow-telemetry azure.keyvault.order
Les points suivants doivent vous intéresser :
- Tous les noms de propriétés de configuration ont changé le préfixe de
azure.keyvault
.spring.cloud.azure.keyvault.secret
spring.cloud.azure.keyvault.secret.enabled
est utilisé pour activer toutes les fonctionnalités de secret Key Vault, notamment configurer les haricots clients de secret Key Vault (commeSecretClient
et ) et les ajouterKeyVaultPropertySource
ConfigurableEnvironment
.SecretAsyncClient
spring.cloud.azure.keyvault.secret.property-source-enabled
est utilisé pour activer toutKeyVaultPropertySource
. Elle n’aura effet que lorsquespring.cloud.azure.keyvault.secret.enabled=true
.- Pour les propriétés courantes Azure (telles que
client
, ,proxy
,retry
credential
,profile
) et les propriétés Key Vault (par exempleendpoint
,service-version
). S’ilspring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
n’est pas configuré,spring.cloud.azure.keyvault.secret.PROPERTY_NAME
il est utilisé. spring.cloud.azure.keyvault.secret.property-sources[n].resource
est spécifique à une ressource Azure unique. Par conséquent, si elle n’est pas configurée, elle n’obtient pas de valeur à partir d’autres emplacements.
D’azure-spring-boot-starter-servicebus-jms à spring-cloud-azure-starter-servicebus-jms
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-servicebus-jms à partir de la version 3 d’azure-spring-boot-starter-servicebus-jms.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Type de configuration pour spring.jms.servicebus.idle-timeout
passer de long
(millisecondes) au Duration
modèle pour la lisibilité.
D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-blob
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-storage-blob à partir de la version 3 d’azure-spring-boot-starter-storage.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Tous les noms de propriétés de configuration ont changé le préfixe de azure.storage
.spring.cloud.azure.storage.blob
Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-storage
:spring-cloud-azure-starter-storage-blob
Propriétés héritées | Propriétés modernes |
---|---|
azure.storage.account-name | spring.cloud.azure.storage.blob.account-name |
azure.storage.account-key | spring.cloud.azure.storage.blob.account-key |
azure.storage.blob-endpoint | spring.cloud.azure.storage.blob.endpoint |
Modifications d'API
Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-storage
:spring-cloud-azure-starter-storage-blob
Classe héritée | Classe moderne |
---|---|
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ProtocolResolver | com.azure.spring.core.resource.Azure Stockage BlobProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.Blob Stockage Resource | com.azure.spring.core.resource. Stockage BlobResource |
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ResourcePatternResolver | com.azure.spring.core.resource.Azure Stockage BlobProtocolResolver |
D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-file-share
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-storage-file-share à partir de la version 3 d’azure-spring-boot-starter-storage.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Tous les noms de propriétés de configuration ont changé le préfixe de azure.storage
.spring.cloud.azure.storage.fileshare
Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-storage
:spring-cloud-azure-starter-storage-file-share
Propriétés héritées | Propriétés modernes |
---|---|
azure.storage.account-name | spring.cloud.azure.storage.fileshare.account-name |
azure.storage.account-key | spring.cloud.azure.storage.fileshare.account-key |
azure.storage.file-endpoint | spring.cloud.azure.storage.fileshare.endpoint |
Modifications d'API
Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-storage
:spring-cloud-azure-starter-storage-file-share
Classe héritée | Classe moderne |
---|---|
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ProtocolResolver | com.azure.spring.core.resource.Azure Stockage FileProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.File Stockage Resource | com.azure.spring.core.resource. Stockage FileResource |
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ResourcePatternResolver | com.azure.spring.core.resource.Azure Stockage FileProtocolResolver |
D’azure-spring-cloud-starter-eventhubs à spring-cloud-azure-starter-integration-eventhubs
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-integration-eventhubs à partir de la version 2 d’azure-spring-cloud-starter-eventhubs.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Important
Le préfixe de configuration a été remplacé par spring.cloud.azure.eventhub
spring.cloud.azure.eventhubs.
Pour connaître les modifications apportées aux entrées enfants pour ce préfixe, consultez les tableaux suivants :
Le tableau suivant présente les mappages de propriétés de azure-spring-cloud-starter-eventhubs
:spring-cloud-azure-starter-integration-eventhubs
Propriétés héritées | Propriétés modernes |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.eventhubs.resource.resource-group |
spring.cloud.azure.eventhub.namespace | spring.cloud.azure.eventhubs.namespace |
spring.cloud.azure.eventhub.connection-string | spring.cloud.azure.eventhubs.connection-string |
spring.cloud.azure.eventhub.case activéepoint-storage-account | spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-name |
spring.cloud.azure.eventhub.case activéeclé d’accès point | spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-key |
spring.cloud.azure.eventhub.case activéepoint-container | spring.cloud.azure.eventhubs.processor.case activéepoint-store.container-name |
Par exemple, changez de :
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}
to:
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}
Modifications d'API
- Pour connaître les modifications apportées aux annotations de l’écouteur, consultez le guide de migration de la <<bibliothèque migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> .
- Supprimer
EventHubOperation
avec la fonction d’abonnement déplacée vers la classeEventHubsMessageListenerContainer
et la fonction d’envoi déplacée versEventHubsTemplate
. - Renommez-le
EventHubInboundChannelAdapter
pourEventHubsInboundChannelAdapter
rester cohérent avec le service d’Azure Event Hubs. - Modifiez le constructeur de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
versEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
etEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Remplacez
CheckpointConfig
le style d’instanciation par le constructeur simple au lieu du style de build. - Supprimer l’API
EventHubOperation#setCheckpointConfig
. Pour définir la configuration case activée point de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeEventHubsContainerProperties#setCheckpointConfig
. - Supprimer l’API
EventHubOperation#setBatchConsumerConfig
. Pour définir la configuration consommatrice de lots pour l’adaptateur de canal entrant, les utilisateurs peuvent appeler les deux méthodesEventHubsContainerProperties#getBatch#setMaxSize
etEventHubsContainerProperties#getBatch#setMaxWaitTime
pendant ce temps. - Pour le mode de consommation par lots, modifiez les noms d’en-têtes de message convertis à partir de messages par lots.
- Modifier l’en-tête de message de
azure_eventhub_enqueued_time
versazure_eventhubs_batch_converted_enqueued_time
. - Modifier l’en-tête de message de
azure_eventhub_offset
versazure_eventhubs_batch_converted_offset
. - Modifier l’en-tête de message de
azure_eventhub_sequence_number
versazure_eventhubs_batch_converted_sequence_number
. - Modifier l’en-tête de message de
azure_partition_key
versazure_batch_converted_partition_key
.
- Modifier l’en-tête de message de
- Lors de la publication de messages dans Event Hubs, ignorez tous les en-têtes de message convertis à partir de messages par lots. Les en-têtes sont les suivants :
- 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
- Le
BATCH
mode case activée point fonctionne uniquement en mode de consommation par lots maintenant, qui peut être activé en passantListenerMode.BATCH
au constructeur EventHubsInboundChannelAdapter.
Le tableau suivant montre les mappages de classes à partir de azure-spring-cloud-starter-eventhubs
:spring-cloud-azure-starter-integration-eventhubs
Classe héritée | Classe moderne |
---|---|
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. case activée point. CheckpointConfig |
com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core. case activée point. CheckpointMode |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging. case activée point. Point de contrôle |
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 |
Exemple d’extrait de code
EventHubsInboundChannelAdapter
exemple de code :Code hérité :
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; } }
Code moderne :
public class Demo { @Bean public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) { EventHubsContainerProperties containerProperties = new EventHubsContainerProperties(); containerProperties.setEventHubName("EVENTHUB_NAME"); containerProperties.setConsumerGroup("CONSUMER_GROUP"); CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL); containerProperties.setCheckpointConfig(config); return new EventHubsMessageListenerContainer(processorFactory, containerProperties); } @Bean public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubsMessageListenerContainer listenerContainer) { EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } }
DefaultMessageHandler
exemple de code :Code hérité :
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; } }
Code moderne :
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; } }
D’azure-spring-integration-eventhubs à spring-integration-azure-eventhubs
Ce guide est destiné à faciliter la migration vers spring-integration-azure-eventhubs à partir de la version 2 d’azure-spring-integration-eventhubs.
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
Modifications d'API
- Supprimer
EventHubOperation
avec la fonction d’abonnement déplacée vers la classeEventHubsMessageListenerContainer
et la fonction d’envoi déplacée versEventHubsTemplate
. - Renommez-le
EventHubInboundChannelAdapter
pourEventHubsInboundChannelAdapter
rester cohérent avec le service d’Azure Event Hubs. - Modifiez le constructeur de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
versEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
etEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Remplacez
CheckpointConfig
le style d’instanciation par le constructeur simple au lieu du style de build. - Supprimer l’API
EventHubOperation#setCheckpointConfig
. Pour définir la configuration case activée point de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeEventHubsContainerProperties#setCheckpointConfig
. - Supprimer l’API
EventHubOperation#setBatchConsumerConfig
. Pour définir la configuration consommatrice de lots pour l’adaptateur de canal entrant, les utilisateurs peuvent appeler les deux méthodesEventHubsContainerProperties#getBatch#setMaxSize
etEventHubsContainerProperties#getBatch#setMaxWaitTime
pendant ce temps. - Pour le mode de consommation par lots, modifiez les noms d’en-têtes de message convertis à partir de messages par lots.
- Modifier l’en-tête de message de
azure_eventhub_enqueued_time
versazure_eventhubs_batch_converted_enqueued_time
. - Modifier l’en-tête de message de
azure_eventhub_offset
versazure_eventhubs_batch_converted_offset
. - Modifier l’en-tête de message de
azure_eventhub_sequence_number
versazure_eventhubs_batch_converted_sequence_number
. - Modifier l’en-tête de message de
azure_partition_key
versazure_batch_converted_partition_key
.
- Modifier l’en-tête de message de
- Lors de la publication de messages dans Event Hubs, ignorez tous les en-têtes de message convertis à partir de messages par lots. Les en-têtes sont les suivants :
- 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
- Le
BATCH
mode case activée point fonctionne uniquement en mode de consommation par lots maintenant, qui peut être activé en passantListenerMode.BATCH
au constructeur EventHubsInboundChannelAdapter.
Le tableau suivant montre les mappages de classes à partir de azure-spring-integration-eventhubs
:spring-integration-azure-eventhubs
Classe héritée | Classe moderne |
---|---|
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. case activée point. CheckpointConfig |
com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core. case activée point. CheckpointMode |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging. case activée point. Point de contrôle |
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 |
D’azure-spring-cloud-starter-servicebus à spring-cloud-azure-starter-integration-servicebus
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-integration-servicebus à partir de la version 2 d’azure-spring-cloud-starter-servicebus.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Pour toutes les options de configuration prises en charge, spring-cloud-azure-starter-integration-servicebus
le préfixe reste en tant que spring.cloud.azure.servicebus
.
Le tableau suivant montre les mappages de propriétés à partir de azure-spring-cloud-starter-servicebus
:spring-cloud-azure-starter-integration-servicebus
Propriétés héritées | Propriétés modernes |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebus.client.transport-type |
spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
spring.cloud.azure.servicebus.retry-options.max-retry | spring.cloud.azure.servicebus.retry.exponential.max-retry ou spring.cloud.azure.servicebus.retry.fixed.max-retries, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel |
spring.cloud.azure.servicebus.retry-options.max-delay | spring.cloud.azure.servicebus.retry.exponential.max-delay |
spring.cloud.azure.servicebus.retry-options.try-timeout | spring.cloud.azure.servicebus.retry.try-timeout |
Modifications d'API
- Supprimez
ServiceBusQueueOperation
etServiceBusTopicOperation
avec la fonction d’abonnement déplacée vers la classeServiceBusMessageListenerContainer
et la fonction d’envoi déplacée versServiceBusTemplate
. - Supprimez et
ServiceBusTopicInboundChannelAdapter
déplacezServiceBusQueueInboundChannelAdapter
les fonctionnalités permettant d’écouter une entité file d’attente/rubrique Service Bus vers ServiceBusInboundChannelAdapter. - Modifiez le constructeur de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
versServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Modifiez le constructeur de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
versServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Supprimer des
ServiceBusQueueOperation#setCheckpointConfig
API etServiceBusTopicOperation#setCheckpointConfig
. Pour définir la configuration case activée point pour l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeServiceBusContainerProperties#setAutoComplete
à la place. Pour désactiver le mode de saisie semi-automatique, il équivaut auMANUAL
mode case activée point et à l’activer déclenche leRECORD
mode. - Supprimer des
ServiceBusQueueOperatio#setClientConfig
API etServiceBusTopicOperation#setClientConfig
. Pour configurer le sous-jacentServiceBusProcessorClient
utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliserServiceBusContainerProperties
à la place. - Supprimez
CompletableFuture
la prise en charge etServiceBusTemplate
DefaultMessageHandler
la prise en chargeReactor
à la place. - Ajoutez une nouvelle API de
ServiceBusTemplate#setDefaultEntityType
sorte à spécifier le type d’entité, qui est requis lorsqu’aucune bean ofPropertiesSupplier<String, ProducerProperties>
n’est fournie pour leProducerProperties#entityType
. - Supprimer l’en-tête
AzureHeaders.RAW_ID
de message . UtilisezServiceBusMessageHeaders.MESSAGE_ID
à la place.
Le tableau suivant montre les mappages de classes à partir de azure-spring-cloud-starter-servicebus
:spring-cloud-azure-starter-integration-servicebus
Classe héritée | Classe moderne |
---|---|
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 |
Exemple d’extrait de code
ServiceBusInboundChannelAdapter
exemple de code :Code hérité d’utilisation
ServiceBusQueueInboundChannelAdapter
ouServiceBusTopicInboundChannelAdapter
: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; } }
Code moderne :
public class Demo { @Bean("queue-listener-container") public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) { ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties(); containerProperties.setEntityName("QUEUE_NAME"); containerProperties.setAutoComplete(false); return new ServiceBusMessageListenerContainer(processorFactory, containerProperties); } @Bean public ServiceBusInboundChannelAdapter queueMessageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, @Qualifier("queue-listener-container") ServiceBusMessageListenerContainer listenerContainer) { ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } @Bean("topic-listener-container") public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) { ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties(); containerProperties.setEntityName("TOPIC_NAME"); containerProperties.setSubscriptionName("SUBSCRIPTION_NAME"); containerProperties.setAutoComplete(false); return new ServiceBusMessageListenerContainer(processorFactory, containerProperties); } @Bean public ServiceBusInboundChannelAdapter topicMessageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, @Qualifier("topic-listener-container") ServiceBusMessageListenerContainer listenerContainer) { ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } }
DefaultMessageHandler
exemple de code :Code hérité, en prenant la file d’attente comme exemple :
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; } }
Code moderne :
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; } }
D’azure-spring-integration-servicebus à spring-integration-azure-servicebus
Ce guide est destiné à faciliter la migration vers spring-integration-azure-servicebus à partir de la version 2 d’azure-spring-integration-servicebus.
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
Modifications d'API
- Supprimez
ServiceBusQueueOperation
etServiceBusTopicOperation
avec la fonction d’abonnement déplacée vers la classeServiceBusMessageListenerContainer
et la fonction d’envoi déplacée versServiceBusTemplate
. - Supprimez et
ServiceBusTopicInboundChannelAdapter
déplacezServiceBusQueueInboundChannelAdapter
les fonctionnalités permettant d’écouter une entité file d’attente/rubrique Service Bus vers ServiceBusInboundChannelAdapter. - Modifiez le constructeur de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
versServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Modifiez le constructeur de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
versServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Supprimer des
ServiceBusQueueOperation#setCheckpointConfig
API etServiceBusTopicOperation#setCheckpointConfig
. Pour définir la configuration case activée point pour l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeServiceBusContainerProperties#setAutoComplete
à la place. Pour désactiver le mode de saisie semi-automatique, il équivaut auMANUAL
mode case activée point et à l’activer déclenche leRECORD
mode. - Supprimer des
ServiceBusQueueOperation#setClientConfig
API etServiceBusTopicOperation#setClientConfig
. Pour configurer le sous-jacentServiceBusProcessorClient
utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliserServiceBusContainerProperties
à la place. - Supprimez
CompletableFuture
la prise en charge etServiceBusTemplate
DefaultMessageHandler
la prise en chargeReactor
à la place. - Ajoutez une nouvelle API de
ServiceBusTemplate#setDefaultEntityType
sorte à spécifier le type d’entité, qui est requis lorsqu’aucune bean ofPropertiesSupplier<String, ProducerProperties>
n’est fournie pour leProducerProperties#entityType
. - Supprimer l’en-tête
AzureHeaders.RAW_ID
de message . UtilisezServiceBusMessageHeaders.MESSAGE_ID
à la place.
Le tableau suivant montre les mappages de classes à partir de azure-spring-integration-servicebus
:spring-integration-azure-servicebus
Classe héritée | Classe moderne |
---|---|
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 |
D’azure-spring-cloud-starter-storage-queue à spring-cloud-azure-starter-integration-storage-queue
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-integration-storage-queue à partir de la version 2 d’azure-spring-cloud-starter-storage-queue.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Tous les noms de propriétés de configuration ont changé le préfixe de spring.cloud.azure.storage
.spring.cloud.azure.storage.queue
Le tableau suivant montre les mappages de propriétés à partir de azure-spring-cloud-starter-storage-queue
:spring-cloud-azure-starter-integration-storage-queue
Propriétés héritées | Propriétés modernes |
---|---|
spring.cloud.azure.storage.account | spring.cloud.azure.storage.queue.account-name |
spring.cloud.azure.storage.access-key | spring.cloud.azure.storage.queue.account-key |
spring.cloud.azure.storage.resource-group | spring.cloud.azure.storage.queue.resource.resource-group |
Modifications d'API
- Supprimez et fournissez
StorageQueueOperation
StorageQueueTemplate
à la place. - Supprimer
checkpoint-mode
la configuration dansStorageQueueTemplate
, prend uniquement en charge leMANUAL
mode.
Le tableau suivant montre les mappages de classes de azure-spring-cloud-starter-storage-queue
vers spring-cloud-azure-starter-integration-storage-queue
.
Classe héritée | Classe moderne |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter. Stockage QueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter. Stockage QueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging. case activée point. Point de contrôle |
com.azure.spring.integration.storage.queue. Stockage QueueTemplate | com.azure.spring.storage.queue.core. Stockage QueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource | com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource |
D’azure-spring-integration-storage-queue à spring-integration-azure-storage-queue
Ce guide est destiné à faciliter la migration vers spring-integration-azure-storage-queue à partir de la version 2 d’azure-spring-integration-storage-queue.
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
Modifications d'API
- Supprimez et fournissez
StorageQueueOperation
StorageQueueTemplate
à la place. - Supprimer
checkpoint-mode
la configuration dansStorageQueueTemplate
, prend uniquement en charge leMANUAL
mode.
Le tableau suivant montre les mappages de classes de azure-spring-integration-storage-queue
vers spring-integration-azure-storage-queue
.
Classe héritée | Classe moderne |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter. Stockage QueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter. Stockage QueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging. case activée point. Point de contrôle |
com.azure.spring.integration.storage.queue. Stockage QueueTemplate | com.azure.spring.storage.queue.core. Stockage QueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource | com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource |
À partir d’azure-spring-cloud-stream-binder-eventhubs vers spring-cloud-azure-stream-binder-eventhubs
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-stream-binder-eventhubs à partir de la version 2 d’azure-spring-cloud-stream-binder-eventhubs.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Important
Le préfixe de configuration a été remplacé par spring.cloud.azure.eventhub
spring.cloud.azure.eventhubs.
Important
Le type de classeur est renommé de : eventhub
à eventhubs
.
Pour connaître les modifications apportées aux entrées enfants pour le préfixe suivant, consultez le tableau suivant.
Le tableau suivant présente les mappages de propriétés de azure-spring-cloud-stream-binder-eventhubs
:spring-cloud-azure-stream-binder-eventhubs
Propriétés héritées | Propriétés modernes |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.eventhubs.resource.resource-group |
spring.cloud.azure.eventhub.namespace | spring.cloud.azure.eventhubs.namespace |
spring.cloud.azure.eventhub.connection-string | spring.cloud.azure.eventhubs.connection-string |
spring.cloud.azure.eventhub.case activéepoint-storage-account | spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-name |
spring.cloud.azure.eventhub.case activéeclé d’accès point | spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-key |
spring.cloud.azure.eventhub.case activéepoint-container | spring.cloud.azure.eventhubs.processor.case activéepoint-store.container-name |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.case activéemode point | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.case activéepoint.mode |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.case activéenombre de points | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.case activéepoint.count |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.case activéepoint-interval | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.case activéepoint.interval |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Remarque
Le type de valeur de la start-position
configuration est également passé d’une énumération à com.azure.spring.integration.core.api.StartPosition
une map
valeur de StartPositionProperties
chaque partition. Par conséquent, la clé est l’ID de partition, et la valeur inclut com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties
des propriétés de décalage, de numéro de séquence, d’heure de date mise en file d’attente et d’inclusion.
Exemples de migration de configuration
Pour utiliser la chaîne de connexion pour l’authentification et migrer les propriétés mentionnées ci-dessus, les modifications de configuration sont répertoriées comme suit :
Configuration héritée :
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
Configuration moderne :
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
Si vous utilisez des principaux de sécurité au lieu de chaîne de connexion s, dans les versions antérieures à la version 4.0, l’application se connecte d’abord à Azure Resource Manager (ARM) avec le principal de sécurité fourni, puis récupère la chaîne de connexion de l’espace de noms spécifié avec ARM. À la fin, l’application utilise le chaîne de connexion récupéré pour se connecter à Azure Event Hubs. De cette façon, le principal de sécurité fourni doit être accordé avec le rôle Contributeur pour récupérer l’espace de noms Azure Event Hubs associé.
Pour Azure Spring Apps 4.0, nous fournissons deux façons d’exploiter les principaux de sécurité pour l’authentification. L’un utilise toujours les principaux pour se connecter à ARM et récupérer les chaîne de connexion où le Contributor
rôle est requis pour les principaux. L’autre tire parti des principaux de sécurité pour s’authentifier auprès de Microsoft Entra ID, puis se connecter directement à Azure Event Hubs. Dans ce cas, le Contributor
rôle n’est plus nécessaire, tandis que d’autres Data
rôles associés sont requis pour les opérations de messagerie. Pour vous assurer que le principal de sécurité a reçu l’autorisation suffisante pour accéder à la ressource Azure, consultez Autoriser l’accès avec l’ID Microsoft Entra.
Pour l’authentification basée sur ARM, en prenant par exemple le principal de service, la migration de configuration est répertoriée ci-dessous, où le rôle affecté ne doit pas changer :
Configuration héritée :
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}
Remarque
Les valeurs autorisées tenant-id
sont : common
, organizations
, consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.
La configuration moderne, les propriétés de l’ID d’abonnement Azure et du groupe de ressources sont requises :
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}
Remarque
Les valeurs autorisées tenant-id
sont : common
, organizations
, consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.
Vous pouvez également migrer vers l’authentification et l’autorisation avec l’ID Microsoft Entra directement sans effectuer un détour vers ARM. Veillez à accorder les rôles nécessaires Data
au principal de sécurité pour les opérations de messagerie. Les exemples de configuration du principal de service et de l’identité managée sont répertoriés comme suit :
Avec un principal de service
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Remarque
Les valeurs autorisées tenant-id
sont : common
, organizations
, consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.
Avec une identité managée
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}
Modifications d'API
Le tableau suivant montre les mappages de classes de azure-spring-cloud-stream-binder-eventhubs
vers spring-cloud-azure-stream-binder-eventhubs
.
Classe héritée | Classe moderne |
---|---|
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging. case activée point. Point de contrôle |
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
D’azure-spring-cloud-stream-binder-servicebus-* à spring-cloud-azure-stream-binder-servicebus
Ce guide est destiné à faciliter la migration vers spring-cloud-azure-stream-binder-servicebus à partir de la version 2 d’azure-spring-cloud-stream-binder-servicebus-queueou azure-spring-cloud-stream-binder-servicebus-topic.
Pour obtenir des informations générales, utilisez les liens suivants :
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
- Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
- Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
- Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
- Pour savoir comment tirer parti
spring-boot-properties-migrator
pendant la migration, consultez la section Configurer chaque kit SDK . - Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.
Modifications de configuration du Kit de développement logiciel (SDK)
Important
Les bibliothèques de classeur héritées sont azure-spring-cloud-stream-binder-servicebus-queue
et azure-spring-cloud-stream-binder-servicebus-topic
, maintenant, elles sont fusionnées en un spring-cloud-azure-stream-binder-servicebus
.
Important
Le type de classeur est combiné à partir de servicebus-queue
et servicebus-topic
en tant que servicebus
.
Le tableau suivant répertorie les nouvelles propriétés de configuration de spring-cloud-azure-stream-binder-servicebus
:
Propriétés modernes | Description |
---|---|
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type | Si vous utilisez la fonction d’envoi, vous devez définir le type d’entité, que vous pouvez définir sur la rubrique ou la file d’attente. |
Le tableau suivant montre les mappages de propriétés à partir de azure-spring-cloud-stream-binder-servicebus-*
:spring-cloud-azure-stream-binder-servicebus
Propriétés héritées | Propriétés modernes |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebus.client.transport-type |
spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
spring.cloud.azure.servicebus.retry-options.max-retry | spring.cloud.azure.servicebus.retry.exponential.max-retry ou spring.cloud.azure.servicebus.retry.fixed.max-retries, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel |
spring.cloud.azure.servicebus.retry-options.max-delay | spring.cloud.azure.servicebus.retry.exponential.max-delay |
spring.cloud.azure.servicebus.retry-options.try-timeout | spring.cloud.azure.servicebus.retry.try-timeout |
spring.cloud.stream.servicebus.queue.bindings.* | spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.Concurrence | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.mode case activée point | spring.cloud.stream.servicebus.bindings.binding-name.consumer.saisie semi-automatique |
spring.cloud.stream.servicebus.topic.bindings.* | spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Concurrence | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.mode case activée point | spring.cloud.stream.servicebus.bindings.binding-name.consumer.saisie semi-automatique |
Remarque
La propriété d’accès concurrentiel est remplacée par les maxConcurrentSessions lorsque sessionsEnabled est true
et maxConcurrentCalls lorsque sessionsEnabled est false
.
Remarque
L’activation de la saisie semi-automatique est égale au RECORD
mode case activée point et en mode opposéMANUAL
.
Exemples de migration de configuration
Configuration héritée, en prenant la file d’attente comme exemple :
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
Configuration moderne :
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
Si vous utilisez des principaux de sécurité au lieu de chaîne de connexion s, dans les versions antérieures à la version 4.0, l’application se connecte d’abord à Azure Resource Manager (ARM) avec le principal de sécurité fourni, puis récupère la chaîne de connexion de l’espace de noms spécifié avec ARM. À la fin, l’application utilise le chaîne de connexion récupéré pour se connecter à Azure Service Bus. De cette façon, le principal de sécurité fourni doit être accordé avec le rôle Contributeur pour récupérer l’espace de noms Azure Service Bus associé.
Pour Azure Spring Apps 4.0, nous fournissons deux façons d’exploiter les principaux de sécurité pour l’authentification. L’un utilise toujours les principaux pour se connecter à ARM et récupérer les chaîne de connexion où le Contributor
rôle est requis pour les principaux. L’autre tire parti des principaux de sécurité pour s’authentifier auprès de Microsoft Entra ID, puis se connecter directement à Azure Service Bus. Dans ce cas, le Contributor
rôle n’est plus nécessaire, tandis que d’autres Data
rôles associés sont requis pour les opérations de messagerie. Pour vous assurer que le principal de sécurité a reçu l’autorisation suffisante pour accéder à la ressource Azure, consultez Autoriser l’accès avec l’ID Microsoft Entra.
Pour l’authentification basée sur ARM, en prenant par exemple le principal de service, la migration de configuration est répertoriée ci-dessous, où le rôle affecté ne doit pas changer :
Configuration héritée :
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}
Remarque
Les valeurs autorisées tenant-id
sont : common
, organizations
, consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.
La configuration moderne, les propriétés de l’ID d’abonnement Azure et du groupe de ressources sont requises :
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}
Remarque
Les valeurs autorisées tenant-id
sont : common
, organizations
, consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.
Vous pouvez également migrer vers l’authentification et l’autorisation avec l’ID Microsoft Entra directement sans effectuer un détour vers ARM. Veillez à accorder les rôles nécessaires Data
au principal de sécurité pour les opérations de messagerie. Les exemples de configuration du principal de service et de l’identité managée sont répertoriés comme suit :
Avec un principal de service
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Remarque
Les valeurs autorisées tenant-id
sont : common
, organizations
, consumers
ou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.
Avec une identité managée
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}
Modifications d'API
- Supprimer l’en-tête
AzureHeaders.RAW_ID
de message . UtilisezServiceBusMessageHeaders.MESSAGE_ID
à la place.
Le tableau suivant montre les mappages de classes de azure-spring-cloud-stream-binder-eventhubs
vers spring-cloud-azure-stream-binder-eventhubs
.
Classe héritée | Classe moderne |
---|---|
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. case activée point. Point de contrôle |
azure-spring-cloud-messaging
La com.azure.spring:azure-spring-cloud-messaging
bibliothèque n’est pas prête pour la version 4.0. La fonction d’annotations de l’écouteur est en cours de refonte. Par conséquent, @AzureMessageListeners
les annotations et @EnableAzureMessaging
les @AzureMessageListener
annotations ne sont pas prises en charge actuellement.