Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide vous aide à migrer vers Spring Cloud Azure 4.0 à partir de bibliothèques Azure Spring héritées.
Présentation
Nous appelons les bibliothèques dont l’ID de groupe et l’ID d’artefact suivent le modèle
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 de com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-* ou com.azure.spring:azure-spring-integration-* package est supposée.
Si vous débutez avec les bibliothèques Spring Cloud Azure 4.0, consultez le guide de développement 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.
Aperçu
Ce guide de migration se compose des sections suivantes :
- Modifications de nommage pour Spring Cloud Azure 4.0
- Modifications d’artefact : renommé / ajouté / supprimé
- Modifications des dépendances
- Modifications de l’authentification
- Propriétés de configuration
- Modifications cassants de l’API
- Modifications apportées à la bibliothèque
Modifications de nommage
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 du projet Spring Cloud Azure pour représenter toutes les bibliothèques Azure Spring.
BOM
Nous avons utilisé pour expédier deux boM pour nos bibliothèques, les azure-spring-boot-bom et les 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 section dependencyManagement 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>6.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Remarque
Si vous utilisez Spring Boot 3.0.x-3.4.x, veillez à définir la spring-cloud-azure-dependencies version 5.23.0sur .
Si vous utilisez Spring Boot 2.x, veillez à définir la version spring-cloud-azure-dependencies sur 4.20.0.
Pour plus d’informations sur la version utilisée pour ce boM, consultez Quelle version de Spring Cloud Azure dois-je 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 | Descriptif |
|---|---|---|
| azure-spring-boot-starter | spring-cloud-azure-starter | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel artefact spring-cloud-azure-starter. |
| 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 | Renommé l’artefact pour ajouter data, indiquant l’utilisation de Spring Data Azure Cosmos DB. |
| azure-spring-boot-starter-keyvault-certificates | sans objet | 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-starter-storage-file-share |
L’artefact hérité contient les fonctionnalités des objets blob de stockage et du 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 | sans objet | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel artefact spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-autoconfigure | sans objet | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel artefact spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-context | sans objet | Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans la nouvelle spring-cloud-azure-autoconfigure et spring-cloud-azure-resourcemanager artefacts. |
| azure-spring-cloud-messaging | spring-messaging-azure | L’annotation de l’écouteur de messagerie a été supprimée. |
| azure-spring-cloud-starter-cache | sans objet | 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 prise en charge d’Azure Redis Spring Cloud. |
| azure-spring-cloud-starter-eventhubs-kafka | sans objet | 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 prise en charge de Spring Cloud Azure Kafka. |
| azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Renommez 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 | Renommé 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 | Renommé l’artefact pour ajouter integration, indiquant l’utilisation de Spring Integration avec file d’attente de stockage. |
| azure-spring-cloud-storage | sans objet | Cet artefact a été supprimé avec toutes les fonctionnalités fusionnées dans le nouvel artefact spring-cloud-azure-autoconfigure. |
| 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. |
| sans objet | spring-cloud-azure-actuator | Artefact Spring Cloud Azure Actuator nouvellement ajouté. |
| sans objet | spring-cloud-azure-actuator-autoconfigure | L’artefact Spring Cloud Azure Actuator AutoConfigure récemment ajouté, y compris la configuration automatique pour l’actionneur. |
| sans objet | 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. |
| sans objet | spring-cloud-azure-core | Artefact Spring Cloud Azure Core récemment ajouté, y compris toutes les fonctionnalités principales. |
| sans objet | 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. |
| sans objet | spring-cloud-azure-service | Artefact Spring Cloud Azure Service récemment ajouté, y compris les abstractions pour les services Azure. |
| sans objet | spring-cloud-azure-starter-appconfiguration | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure App Configuration. |
| sans objet | spring-cloud-azure-starter-cosmos | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Cosmos DB. |
| sans objet | spring-cloud-azure-starter-eventhubs | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Event Hubs. |
| sans objet | spring-cloud-azure-starter-servicebus | Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Service Bus. |
| sans objet | spring-cloud-azure-starter-storage-blob | Démarrage nouvellement ajouté pour l’utilisation du client du Kit de développement logiciel (SDK) Blob Stockage Azure. |
| sans objet | spring-cloud-azure-starter-starter-storage-file-share | Démarrage nouvellement ajouté pour l’utilisation du client sdk de partage de fichiers Stockage Azure. |
| sans objet | spring-cloud-azure-starter-storage-queue | Démarrage nouvellement ajouté pour l’utilisation du client du Kit de développement logiciel (SDK) file d’attente stockage Azure. |
| sans objet | spring-cloud-azure-starter-stream-eventhubs | Nouveau démarrage pour l’utilisation d’Azure Event Hubs Spring Cloud Stream Binder. |
| sans objet | spring-cloud-azure-starter-stream-servicebus | Démarrage nouvellement ajouté pour l’utilisation d’Azure Service Bus Spring Cloud Stream Binder |
| sans objet | 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 rôle est nécessaire lorsque la fonction de création automatique de ressources est nécessaire. Pour plus d’informations, consultez rôles intégrés Azure.
Les informations d’identification chaînées, la DefaultAzureCredential bean est configurée automatiquement par défaut et sera utilisée 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 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 passer à l’action, il est judicieux d’utiliser la fonctionnalité de recherche de votre IDE pour vérifier 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 du spring-boot-properties-migrator vous aidera à faciliter votre migration.
Configurations globales
Le spring-cloud-azure-starter moderne vous permet de définir des propriétés qui s’appliquent à tous les kits sdk Azure dans l’espace de noms spring.cloud.azure. Cette fonctionnalité n’a pas été prise en charge dans la azure-spring-boot-starterhéritée. Les configurations globales peuvent être divisées en cinq catégories, indiquées dans le tableau suivant :
| Préfixe | Descriptif |
|---|---|
| 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’existe aucune spring.cloud.azure.cosmos.retry. |
Pour obtenir la liste complète des configurations, consultez propriétés de configuration Spring Cloud Azure.
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
- à partir 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 vers spring-cloud-azure-starter-integration-eventhubs
- d’azure-spring-cloud-starter-servicebus à spring-cloud-azure-starter-integration-servicebus
- à partir d’azure-spring-cloud-starter-storage-queue vers 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
Modifications 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 vers 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
- à partir d’azure-spring-cloud-starter-storage-queue vers 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 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 un blocage involontaire.
Le tableau suivant présente les dépendances supprimées :
| Dépendances supprimées | Descriptif |
|---|---|
| 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 des 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 | Descriptif |
|---|---|
| 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 est passé de
azure.activedirectoryàspring.cloud.azure.active-directory. - Une nouvelle propriété
spring.cloud.azure.active-directory.enabledest ajoutée pour activer/désactiver les fonctionnalités associées à Microsoft Entra. La valeur par défaut estfalse.
Le tableau suivant présente 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.nom-utilisateur-attribut | spring.cloud.azure.active-directory.user-name-attribute |
Le type de valeur des propriétés suivantes est passé de
longàDuration:jwt-connect-timeoutjwt-read-timeoutjwk-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 de azure.activedirectory.graph-membership-uri a é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 de l’API
Le tableau suivant présente les mappages de classes 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 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 un blocage involontaire.
Le tableau suivant présente les dépendances supprimées :
| Dépendances supprimées | Descriptif |
|---|---|
| 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.b2censpring.cloud.azure.active-directory.b2c. - Une nouvelle propriété
spring.cloud.azure.active-directory.b2c.enabledest ajoutée pour autoriser / désactiver les fonctionnalités associées à Azure AD B2C. La valeur par défaut est false.
Le tableau suivant présente les mappages de propriétés 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.type-de-subvention-autorisation> | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.type-de-subvention-autorisation> |
| azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME.Champs> d’application | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.Champs> d’application |
| 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.secret-client | 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-flow | spring.cloud.azure.active-directory.b2c.user-flow |
| azure.activedirectory.b2c.nom-utilisateur-attribute-nom | spring.cloud.azure.active-directory.b2c.nom-utilisateur-attribute-nom |
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 passé de
longàDuration:- jwt-connect-timeout
- jwt-read-timeout
Modifications de l’API
Le tableau suivant présente les mappages de classes 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 en spring.cloud.azure.cosmos.
Le tableau suivant présente les mappages de classes de azure-spring-boot-starter-cosmos à spring-cloud-azure-starter-data-cosmos:
| Propriétés héritées | Propriétés modernes |
|---|---|
| azure.cosmosmode .connection | spring.cloud.azure.cosmosmode .connection |
| azure.cosmos.consistency-level | spring.cloud.azure.cosmosniveau de cohérence |
| 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 présente les mappages de propriétés de azure-spring-boot-starter-keyvault-secrets à spring-cloud-azure-starter-keyvault-secrets:
| Propriétés héritées | Propriétés modernes |
|---|---|
| azure.keyvaultclés sensibles à la casse | spring.cloud.azure.keyvault.secret.property-source[n].sensible à 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.clé-client | 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 | Non 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].clés_secrètes |
| 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.keyvaultenspring.cloud.azure.keyvault.secret. -
spring.cloud.azure.keyvault.secret.enabledest utilisé pour activer toutes les fonctionnalités de clé secrète Key Vault, notamment configurer des haricots clients de secret Key Vault (commeSecretClientetSecretAsyncClient) et ajouter desKeyVaultPropertySourcedansConfigurableEnvironment. -
spring.cloud.azure.keyvault.secret.property-source-enabledest utilisé pour activer toutes lesKeyVaultPropertySource. 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 Key Vault(commeendpoint,service-version). Sispring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAMEn’est pas configuré,spring.cloud.azure.keyvault.secret.PROPERTY_NAMEsera utilisé. -
spring.cloud.azure.keyvault.secret.property-sources[n].resourceest 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 changé de long(millisecondes) à 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 en spring.cloud.azure.storage.blob.
Le tableau suivant présente les mappages de propriétés 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.nom-compte |
| azure.storage.account-key | spring.cloud.azure.storage.blob.cle-de-compte |
| azure.storage.blob-endpoint | spring.cloud.azure.storage.blob.endpoint |
Modifications de l’API
Le tableau suivant présente les mappages de classes de azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-blob:
| Classe héritée | Classe moderne |
|---|---|
| com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
| com.azure.spring.autoconfigure.storage.resource.BlobStorageResource | com.azure.spring.core.resource.StorageBlobResource |
| com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 en spring.cloud.azure.storage.fileshare.
Le tableau suivant présente les mappages de propriétés 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.nom_compte |
| azure.storage.account-key | spring.cloud.azure.storage.fileshare.cle-de-compte |
| azure.storage.file-endpoint | spring.cloud.azure.storage.fileshare.endpoint |
Modifications de l’API
Le tableau suivant présente les mappages de classes 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.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
| com.azure.spring.autoconfigure.storage.resource.FileStorageResource | com.azure.spring.core.resource.StorageFileResource |
| com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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é modifié de 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.checkpoint-storage-account | spring.cloud.azure.eventhubs.processor.checkpoint-store.nom-compte |
| spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
| spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.nom-conteneur |
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}
À:
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}
Remarque
Microsoft recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d’authentification décrit dans cette procédure, par exemple pour les bases de données, les caches, la messagerie ou les services IA, nécessite un niveau de confiance très élevé dans l’application et comporte des risques non présents dans d’autres flux. Utilisez ce flux uniquement lorsque des options plus sécurisées, telles que les identités managées pour les connexions sans mot de passe ou sans clé, ne sont pas viables. Pour les opérations d’ordinateur local, préférez les identités utilisateur pour les connexions sans mot de passe ou sans clé.
Modifications de l’API
- Pour connaître les modifications apportées aux annotations de l’écouteur, consultez le guide de migration des <<migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> bibliothèque.
- Supprimez
EventHubOperationavec la fonction d’abonnement déplacée vers la classeEventHubsMessageListenerContaineret la fonction d’envoi déplacée versEventHubsTemplate. - Renommez
EventHubInboundChannelAdapteren tant queEventHubsInboundChannelAdapterpour rester cohérent avec le service d’Azure Event Hubs. - Remplacez le constructeur de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)parEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)etEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Remplacez
CheckpointConfigstyle d’instanciation par le constructeur simple au lieu du style de build. - Supprimer l’API
EventHubOperation#setCheckpointConfig. Pour définir la configuration du point de contrôle pour 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#setMaxSizeetEventHubsContainerProperties#getBatch#setMaxWaitTimependant ce temps. - Pour le mode de consommation par lots, modifiez les noms d’en-têtes de message convertis à partir de messages par lots.
- Modifiez l’en-tête de message de
azure_eventhub_enqueued_timeenazure_eventhubs_batch_converted_enqueued_time. - Modifiez l’en-tête de message de
azure_eventhub_offsetenazure_eventhubs_batch_converted_offset. - Modifiez l’en-tête de message de
azure_eventhub_sequence_numberenazure_eventhubs_batch_converted_sequence_number. - Modifiez l’en-tête de message de
azure_partition_keyenazure_batch_converted_partition_key.
- Modifiez 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 mode de point de contrôle
BATCHfonctionne uniquement en mode de consommation par lots maintenant, ce qui peut être activé en passantListenerMode.BATCHau constructeur EventHubsInboundChannelAdapter.
Le tableau suivant présente les mappages de classes 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.checkpoint.CheckpointConfig |
| com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Exemple d’extrait de code
EventHubsInboundChannelAdapterexemple 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; } }DefaultMessageHandlerexemple 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 de azure-spring-integration-eventhubs.
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Introduction et Migration des avantages.
- 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 de l’API
- Supprimez
EventHubOperationavec la fonction d’abonnement déplacée vers la classeEventHubsMessageListenerContaineret la fonction d’envoi déplacée versEventHubsTemplate. - Renommez
EventHubInboundChannelAdapteren tant queEventHubsInboundChannelAdapterpour rester cohérent avec le service d’Azure Event Hubs. - Remplacez le constructeur de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)parEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)etEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Remplacez
CheckpointConfigstyle d’instanciation par le constructeur simple au lieu du style de build. - Supprimer l’API
EventHubOperation#setCheckpointConfig. Pour définir la configuration du point de contrôle pour 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#setMaxSizeetEventHubsContainerProperties#getBatch#setMaxWaitTimependant ce temps. - Pour le mode de consommation par lots, modifiez les noms d’en-têtes de message convertis à partir de messages par lots.
- Modifiez l’en-tête de message de
azure_eventhub_enqueued_timeenazure_eventhubs_batch_converted_enqueued_time. - Modifiez l’en-tête de message de
azure_eventhub_offsetenazure_eventhubs_batch_converted_offset. - Modifiez l’en-tête de message de
azure_eventhub_sequence_numberenazure_eventhubs_batch_converted_sequence_number. - Modifiez l’en-tête de message de
azure_partition_keyenazure_batch_converted_partition_key.
- Modifiez 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 mode de point de contrôle
BATCHfonctionne uniquement en mode de consommation par lots maintenant, ce qui peut être activé en passantListenerMode.BATCHau constructeur EventHubsInboundChannelAdapter.
Le tableau suivant présente les mappages de classes 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.checkpoint.CheckpointConfig |
| com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 dans spring-cloud-azure-starter-integration-servicebus, le préfixe reste spring.cloud.azure.servicebus.
Le tableau suivant présente les mappages de propriétés 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 nouvelles tentatives | spring.cloud.azure.servicebus.retry.exponential.max nouvelles tentatives ou spring.cloud.azure.servicebus.retry.fixed.max-nouvelles tentatives, doit être configurée en fonction de spring.cloud.azure.servicebus.retry.mode=fixe ou exponentielle |
| spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponentiel.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, doit être configuré selon spring.cloud.azure.servicebus.retry.mode=fixe ou exponentielle |
| 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 de l’API
- Supprimez
ServiceBusQueueOperationetServiceBusTopicOperationavec la fonction d’abonnement déplacée vers la classeServiceBusMessageListenerContaineret la fonction d’envoi déplacée versServiceBusTemplate. - Supprimez
ServiceBusQueueInboundChannelAdapteretServiceBusTopicInboundChannelAdapter, puis déplacez la fonctionnalité pour écouter une entité file d’attente/rubrique Service Bus vers ServiceBusInboundChannelAdapter. - Remplacez le constructeur de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)parServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Remplacez le constructeur de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)parServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Supprimer des API
ServiceBusQueueOperation#setCheckpointConfigetServiceBusTopicOperation#setCheckpointConfig. Pour définir la configuration de point de contrôle de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeServiceBusContainerProperties#setAutoCompleteà la place. Pour désactiver le mode de saisie semi-automatique, cela équivaut àMANUALmode de point de contrôle et à l’activer déclenche le modeRECORD. - Supprimer des API
ServiceBusQueueOperatio#setClientConfigetServiceBusTopicOperation#setClientConfig. Pour configurer leServiceBusProcessorClientsous-jacent utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliserServiceBusContainerPropertiesà la place. - Supprimez
CompletableFutureprise en charge dansServiceBusTemplateetDefaultMessageHandler, prenez en chargeReactorà la place. - Ajoutez une nouvelle API de
ServiceBusTemplate#setDefaultEntityTypepour spécifier le type d’entité, ce qui est requis lorsqu’aucun haricot dePropertiesSupplier<String, ProducerProperties>n’est fourni pour leProducerProperties#entityType. - Supprimer l’en-tête de message
AzureHeaders.RAW_ID. UtilisezServiceBusMessageHeaders.MESSAGE_IDà la place.
Le tableau suivant présente les mappages de classes 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
ServiceBusInboundChannelAdapterexemple de code :Code hérité d’utilisation de
ServiceBusQueueInboundChannelAdapterou deServiceBusTopicInboundChannelAdapter: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; } }DefaultMessageHandlerexemple 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 de azure-spring-integration-servicebus.
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Introduction et Migration des avantages.
- 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 de l’API
- Supprimez
ServiceBusQueueOperationetServiceBusTopicOperationavec la fonction d’abonnement déplacée vers la classeServiceBusMessageListenerContaineret la fonction d’envoi déplacée versServiceBusTemplate. - Supprimez
ServiceBusQueueInboundChannelAdapteretServiceBusTopicInboundChannelAdapter, puis déplacez la fonctionnalité pour écouter une entité file d’attente/rubrique Service Bus vers ServiceBusInboundChannelAdapter. - Remplacez le constructeur de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)parServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Remplacez le constructeur de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)parServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)etServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Supprimer des API
ServiceBusQueueOperation#setCheckpointConfigetServiceBusTopicOperation#setCheckpointConfig. Pour définir la configuration de point de contrôle de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeServiceBusContainerProperties#setAutoCompleteà la place. Pour désactiver le mode de saisie semi-automatique, cela équivaut àMANUALmode de point de contrôle et à l’activer déclenche le modeRECORD. - Supprimer des API
ServiceBusQueueOperation#setClientConfigetServiceBusTopicOperation#setClientConfig. Pour configurer leServiceBusProcessorClientsous-jacent utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliserServiceBusContainerPropertiesà la place. - Supprimez
CompletableFutureprise en charge dansServiceBusTemplateetDefaultMessageHandler, prenez en chargeReactorà la place. - Ajoutez une nouvelle API de
ServiceBusTemplate#setDefaultEntityTypepour spécifier le type d’entité, ce qui est requis lorsqu’aucun haricot dePropertiesSupplier<String, ProducerProperties>n’est fourni pour leProducerProperties#entityType. - Supprimer l’en-tête de message
AzureHeaders.RAW_ID. UtilisezServiceBusMessageHeaders.MESSAGE_IDà la place.
Le tableau suivant présente les mappages de classes 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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 en spring.cloud.azure.storage.queue.
Le tableau suivant présente les mappages de propriétés 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.nom_compte |
| spring.cloud.azure.storage.access-key | spring.cloud.azure.storage.queue.cle-compte |
| spring.cloud.azure.storage.resource-group | spring.cloud.azure.storage.queue.resource.resource-group |
Modifications de l’API
- Supprimez
StorageQueueOperationet fournissezStorageQueueTemplateà la place. - Supprimez
checkpoint-modeconfiguration dansStorageQueueTemplate, ne prenez en charge que le modeMANUAL.
Le tableau suivant présente les mappages de classes de azure-spring-cloud-starter-storage-queue à 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.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
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 de azure-spring-integration-storage-queue.
- Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Introduction et Migration des avantages.
- 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 de l’API
- Supprimez
StorageQueueOperationet fournissezStorageQueueTemplateà la place. - Supprimez
checkpoint-modeconfiguration dansStorageQueueTemplate, ne prenez en charge que le modeMANUAL.
Le tableau suivant présente les mappages de classes de azure-spring-integration-storage-queue à 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.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
À 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 de 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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é modifié de spring.cloud.azure.eventhub à spring.cloud.azure.eventhubs.
Important
Le type de classeur est renommé : eventhub en 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.checkpoint-storage-account | spring.cloud.azure.eventhubs.processor.checkpoint-store.nom-compte |
| spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
| spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.nom-conteneur |
| spring.cloud.stream.eventhub.bindings.nom-de-liaison.consumer.max-lot-size | spring.cloud.stream.eventhubs.bindings.nom-de-liaison.consumer.batch.max-size |
| spring.cloud.stream.eventhub.bindings.nom-de-liaison.consumer.max-wait-time | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time |
| spring.cloud.stream.eventhub.bindings.nom-de-liaison.consumer.checkpoint-mode | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode |
| spring.cloud.stream.eventhub.bindings.nom-de-liaison.consumer.checkpoint-count | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count |
| spring.cloud.stream.eventhub.bindings.nom-de-liaison.consumer.checkpoint-interval | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval |
| spring.cloud.stream.eventhub.bindings.nom-de-liaison.consumer.start-position | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Remarque
Le type valeur de la configuration de start-position est également remplacé par une énumération de com.azure.spring.integration.core.api.StartPosition par une map de StartPositionProperties pour chaque partition. Par conséquent, la clé est l’ID de partition et la valeur est de com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties qui inclut les 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
Remarque
Microsoft recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d’authentification décrit dans cette procédure, par exemple pour les bases de données, les caches, la messagerie ou les services IA, nécessite un niveau de confiance très élevé dans l’application et comporte des risques non présents dans d’autres flux. Utilisez ce flux uniquement lorsque des options plus sécurisées, telles que les identités managées pour les connexions sans mot de passe ou sans clé, ne sont pas viables. Pour les opérations d’ordinateur local, préférez les identités utilisateur pour les connexions sans mot de passe ou sans clé.
Si vous utilisez des principaux de sécurité au lieu de chaînes de connexion, 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 la chaîne de connexion récupérée pour se connecter à Azure Event Hubs. De cette façon, le principal de sécurité fourni doit être accordé avec le rôle contributeur 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înes de connexion où le rôle Contributor 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 rôle Contributor n’est plus nécessaire, tandis que d’autres rôles associés Data 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 pour tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez le Utilisé le point de terminaison incorrect (comptes personnels et d’organisation) section Erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans ledu locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur Microsoft Entra ID.
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 pour tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez le Utilisé le point de terminaison incorrect (comptes personnels et d’organisation) section Erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans ledu locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur Microsoft Entra ID.
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 le principal de sécurité nécessaire Data rôles 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 pour tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez le Utilisé le point de terminaison incorrect (comptes personnels et d’organisation) section Erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans ledu locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur Microsoft Entra ID.
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 de l’API
Le tableau suivant présente les mappages de classes de azure-spring-cloud-stream-binder-eventhubs à spring-cloud-azure-stream-binder-eventhubs.
| Classe héritée | Classe moderne |
|---|---|
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
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 de azure-spring-cloud-stream-binder-servicebus-queue ou 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 Introduction et Migration des avantages.
- 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 de
spring-boot-properties-migratorlors de 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, et maintenant elles sont fusionnées dans un spring-cloud-azure-stream-binder-servicebus.
Important
Le type de classeur est combiné à partir de servicebus-queue et de servicebus-topic comme servicebus.
Le tableau suivant répertorie les nouvelles propriétés de configuration de spring-cloud-azure-stream-binder-servicebus:
| Propriétés modernes | Descriptif |
|---|---|
| spring.cloud.stream.servicebus.bindings.nom-de-liaison.producteur.type-entité- | 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 présente les mappages de propriétés 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 nouvelles tentatives | spring.cloud.azure.servicebus.retry.exponential.max nouvelles tentatives ou spring.cloud.azure.servicebus.retry.fixed.max-nouvelles tentatives, doit être configurée en fonction de spring.cloud.azure.servicebus.retry.mode=fixe ou exponentielle |
| spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponentiel.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, doit être configuré selon spring.cloud.azure.servicebus.retry.mode=fixe ou exponentielle |
| 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. en mode point de contrôle | spring.cloud.stream.servicebus.bindings.binding-name.consumer. de 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. en mode point de contrôle | spring.cloud.stream.servicebus.bindings.binding-name.consumer. de 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 à RECORD mode de point de contrôle, et en face du mode 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
Remarque
Microsoft recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d’authentification décrit dans cette procédure, par exemple pour les bases de données, les caches, la messagerie ou les services IA, nécessite un niveau de confiance très élevé dans l’application et comporte des risques non présents dans d’autres flux. Utilisez ce flux uniquement lorsque des options plus sécurisées, telles que les identités managées pour les connexions sans mot de passe ou sans clé, ne sont pas viables. Pour les opérations d’ordinateur local, préférez les identités utilisateur pour les connexions sans mot de passe ou sans clé.
Si vous utilisez des principaux de sécurité au lieu de chaînes de connexion, 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 la chaîne de connexion récupérée pour se connecter à Azure Service Bus. De cette façon, le principal de sécurité fourni doit être accordé avec le rôle contributeur 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înes de connexion où le rôle Contributor 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 rôle Contributor n’est plus nécessaire, tandis que d’autres rôles associés Data 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 pour tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez le Utilisé le point de terminaison incorrect (comptes personnels et d’organisation) section Erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans ledu locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur Microsoft Entra ID.
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 pour tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez le Utilisé le point de terminaison incorrect (comptes personnels et d’organisation) section Erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans ledu locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur Microsoft Entra ID.
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 le principal de sécurité nécessaire Data rôles 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 pour tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez le Utilisé le point de terminaison incorrect (comptes personnels et d’organisation) section Erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans ledu locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur Microsoft Entra ID.
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 de l’API
- Supprimer l’en-tête de message
AzureHeaders.RAW_ID. UtilisezServiceBusMessageHeaders.MESSAGE_IDà la place.
Le tableau suivant présente les mappages de classes de azure-spring-cloud-stream-binder-eventhubs à 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.checkpoint.Checkpointer |
azure-spring-cloud-messaging
La bibliothèque com.azure.spring:azure-spring-cloud-messaging 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, les annotations @AzureMessageListener, @AzureMessageListenerset @EnableAzureMessaging ne sont pas prises en charge actuellement.