Partager via


Guide de migration pour Spring Cloud Azure 4.0

Ce guide vous aide à migrer vers Spring Cloud Azure 4.0 à partir de bibliothèques Azure Spring héritées.

Présentation

Nous appelons les bibliothèques dont l’ID de groupe et l’ID d’artefact suivent le modèle les bibliothèques de modernes , ainsi que les bibliothèques de modèles , ou les bibliothèques héritées.

Ce guide se concentre sur les comparaisons côte à côte pour des configurations similaires entre les bibliothèques modernes et héritées.

La connaissance 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 :

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 :

Modifications cassants de l’API

Pour plus d’informations sur les changements cassants d’API dans chaque bibliothèque, utilisez les liens suivants :

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-migrator lors 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-migrator lors 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 à :
  1. Le préfixe de toutes les propriétés de configuration est passé de azure.activedirectory à spring.cloud.azure.active-directory.
  2. Une nouvelle propriété spring.cloud.azure.active-directory.enabled est ajoutée pour activer/désactiver les fonctionnalités associées à Microsoft Entra. La valeur par défaut est false.

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-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • Les propriétés suivantes sont supprimées :

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • Les propriétés suivantes sont ajoutées :

    • spring.cloud.azure.active-directory.enabled
    • spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
    • spring.cloud.azure.active-directory.user-group.use-transitive-members

Remarque

La fonction 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-migrator lors 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 à :
  1. Tous les noms de propriétés de configuration ont changé le préfixe de azure.activedirectory.b2c en spring.cloud.azure.active-directory.b2c.
  2. Une nouvelle propriété spring.cloud.azure.active-directory.b2c.enabled est 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-migrator lors 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-migrator lors 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 :

  1. Tous les noms de propriétés de configuration ont changé le préfixe de azure.keyvault en spring.cloud.azure.keyvault.secret.
  2. spring.cloud.azure.keyvault.secret.enabled est utilisé pour activer toutes les fonctionnalités de clé secrète Key Vault, notamment configurer des haricots clients de secret Key Vault (comme SecretClient et SecretAsyncClient) et ajouter des KeyVaultPropertySource dans ConfigurableEnvironment.
  3. spring.cloud.azure.keyvault.secret.property-source-enabled est utilisé pour activer toutes les KeyVaultPropertySource. Elle n’aura effet que lorsque spring.cloud.azure.keyvault.secret.enabled=true.
  4. Pour les propriétés courantes Azure(telles que client, proxy, retry, credential, profile) et Key Vault(comme endpoint, service-version). Si spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME n’est pas configuré, spring.cloud.azure.keyvault.secret.PROPERTY_NAME sera utilisé.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource est spécifique à une ressource Azure unique. Par conséquent, si elle n’est pas configurée, elle n’obtient pas de valeur à partir d’autres emplacements.

D’azure-spring-boot-starter-servicebus-jms à spring-cloud-azure-starter-servicebus-jms

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-servicebus-jms à partir de la version 3 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-migrator lors 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-migrator lors 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-migrator lors 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-migrator lors 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 EventHubOperation avec la fonction d’abonnement déplacée vers la classe EventHubsMessageListenerContainer et la fonction d’envoi déplacée vers EventHubsTemplate.
  • Renommez EventHubInboundChannelAdapter en tant que EventHubsInboundChannelAdapter pour rester cohérent avec le service d’Azure Event Hubs.
  • Remplacez le constructeur de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) par EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) et EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Remplacez CheckpointConfig style 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éthode EventHubsContainerProperties#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éthodes EventHubsContainerProperties#getBatch#setMaxSize et EventHubsContainerProperties#getBatch#setMaxWaitTime pendant ce temps.
  • Pour le mode de consommation par lots, modifiez les noms d’en-têtes de message convertis à partir de messages par lots.
    • Modifiez l’en-tête de message de azure_eventhub_enqueued_time en azure_eventhubs_batch_converted_enqueued_time.
    • Modifiez l’en-tête de message de azure_eventhub_offset en azure_eventhubs_batch_converted_offset.
    • Modifiez l’en-tête de message de azure_eventhub_sequence_number en azure_eventhubs_batch_converted_sequence_number.
    • Modifiez l’en-tête de message de azure_partition_key en azure_batch_converted_partition_key.
  • 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 BATCH fonctionne uniquement en mode de consommation par lots maintenant, ce qui peut être activé en passant ListenerMode.BATCH au 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

  • EventHubsInboundChannelAdapter exemple de code :

    Code hérité:

    public class Demo {
        @Bean
        public EventHubInboundChannelAdapter messageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubOperation   eventhubOperation) {
            eventhubOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode  (CheckpointMode.MANUAL).build());
            EventHubInboundChannelAdapter adapter = new EventHubInboundChannelAdapter("EVENTHUB_NAME",
                eventhubOperation, "CONSUMER_GROUP");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    

    Code moderne :

    public class Demo {
        @Bean
        public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) {
            EventHubsContainerProperties containerProperties = new EventHubsContainerProperties();
            containerProperties.setEventHubName("EVENTHUB_NAME");
            containerProperties.setConsumerGroup("CONSUMER_GROUP");
            CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL);
            containerProperties.setCheckpointConfig(config);
            return new EventHubsMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
                                                                    EventHubsMessageListenerContainer listenerContainer) {
            EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler exemple de code :

    Code hérité:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubOperation eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
            return handler;
        }
    }
    

    Code moderne :

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubsTemplate eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
    
            return handler;
        }
    }
    

D’azure-spring-integration-eventhubs à spring-integration-azure-eventhubs

Ce guide est destiné à faciliter la migration vers spring-integration-azure-eventhubs à partir de la version 2 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 EventHubOperation avec la fonction d’abonnement déplacée vers la classe EventHubsMessageListenerContainer et la fonction d’envoi déplacée vers EventHubsTemplate.
  • Renommez EventHubInboundChannelAdapter en tant que EventHubsInboundChannelAdapter pour rester cohérent avec le service d’Azure Event Hubs.
  • Remplacez le constructeur de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) par EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) et EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Remplacez CheckpointConfig style 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éthode EventHubsContainerProperties#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éthodes EventHubsContainerProperties#getBatch#setMaxSize et EventHubsContainerProperties#getBatch#setMaxWaitTime pendant ce temps.
  • Pour le mode de consommation par lots, modifiez les noms d’en-têtes de message convertis à partir de messages par lots.
    • Modifiez l’en-tête de message de azure_eventhub_enqueued_time en azure_eventhubs_batch_converted_enqueued_time.
    • Modifiez l’en-tête de message de azure_eventhub_offset en azure_eventhubs_batch_converted_offset.
    • Modifiez l’en-tête de message de azure_eventhub_sequence_number en azure_eventhubs_batch_converted_sequence_number.
    • Modifiez l’en-tête de message de azure_partition_key en azure_batch_converted_partition_key.
  • 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 BATCH fonctionne uniquement en mode de consommation par lots maintenant, ce qui peut être activé en passant ListenerMode.BATCH au 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-migrator lors 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 ServiceBusQueueOperation et ServiceBusTopicOperation avec la fonction d’abonnement déplacée vers la classe ServiceBusMessageListenerContainer et la fonction d’envoi déplacée vers ServiceBusTemplate.
  • Supprimez ServiceBusQueueInboundChannelAdapter et ServiceBusTopicInboundChannelAdapter, 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) par ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Remplacez le constructeur de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) par ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Supprimer des API ServiceBusQueueOperation#setCheckpointConfig et ServiceBusTopicOperation#setCheckpointConfig. Pour définir la configuration de point de contrôle de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthode ServiceBusContainerProperties#setAutoComplete à la place. Pour désactiver le mode de saisie semi-automatique, cela équivaut à MANUAL mode de point de contrôle et à l’activer déclenche le mode RECORD.
  • Supprimer des API ServiceBusQueueOperatio#setClientConfig et ServiceBusTopicOperation#setClientConfig. Pour configurer le ServiceBusProcessorClient sous-jacent utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliser ServiceBusContainerProperties à la place.
  • Supprimez CompletableFuture prise en charge dans ServiceBusTemplate et DefaultMessageHandler, prenez en charge Reactor à la place.
  • Ajoutez une nouvelle API de ServiceBusTemplate#setDefaultEntityType pour spécifier le type d’entité, ce qui est requis lorsqu’aucun haricot de PropertiesSupplier&lt;String, ProducerProperties&gt; n’est fourni pour le ProducerProperties#entityType.
  • Supprimer l’en-tête de message AzureHeaders.RAW_ID. Utilisez ServiceBusMessageHeaders.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

  • ServiceBusInboundChannelAdapter exemple de code :

    Code hérité d’utilisation de ServiceBusQueueInboundChannelAdapter ou de ServiceBusTopicInboundChannelAdapter:

    public class Demo {
        @Bean
        public ServiceBusQueueInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusQueueOperation queueOperation) {
            queueOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusQueueInboundChannelAdapter adapter = new ServiceBusQueueInboundChannelAdapter("QUEUE_NAME",
                queueOperation);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean
        public ServiceBusTopicInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusTopicOperation topicOperation) {
            topicOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusTopicInboundChannelAdapter adapter = new ServiceBusTopicInboundChannelAdapter("TOPIC_NAME",
                topicOperation, "SUBSCRIPTION_NAME");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
    }
    

    Code moderne :

    public class Demo {
        @Bean("queue-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("QUEUE_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("queue-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean("topic-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("TOPIC_NAME");
            containerProperties.setSubscriptionName("SUBSCRIPTION_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("topic-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler exemple de code :

    Code hérité, en prenant la file d’attente comme exemple :

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusQueueOperation queueOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", queueOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
            return handler;
        }
    }
    

    Code moderne :

    public class Demo {
    
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusTemplate serviceBusTemplate) {
            serviceBusTemplate.setDefaultEntityType(ServiceBusEntityType.QUEUE);
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", serviceBusTemplate);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully for {}.", "QUEUE_NAME");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
    
            return handler;
        }
    }
    

D’azure-spring-integration-servicebus à spring-integration-azure-servicebus

Ce guide est destiné à faciliter la migration vers spring-integration-azure-servicebus à partir de la version 2 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 ServiceBusQueueOperation et ServiceBusTopicOperation avec la fonction d’abonnement déplacée vers la classe ServiceBusMessageListenerContainer et la fonction d’envoi déplacée vers ServiceBusTemplate.
  • Supprimez ServiceBusQueueInboundChannelAdapter et ServiceBusTopicInboundChannelAdapter, 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) par ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Remplacez le constructeur de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) par ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Supprimer des API ServiceBusQueueOperation#setCheckpointConfig et ServiceBusTopicOperation#setCheckpointConfig. Pour définir la configuration de point de contrôle de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthode ServiceBusContainerProperties#setAutoComplete à la place. Pour désactiver le mode de saisie semi-automatique, cela équivaut à MANUAL mode de point de contrôle et à l’activer déclenche le mode RECORD.
  • Supprimer des API ServiceBusQueueOperation#setClientConfig et ServiceBusTopicOperation#setClientConfig. Pour configurer le ServiceBusProcessorClient sous-jacent utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliser ServiceBusContainerProperties à la place.
  • Supprimez CompletableFuture prise en charge dans ServiceBusTemplate et DefaultMessageHandler, prenez en charge Reactor à la place.
  • Ajoutez une nouvelle API de ServiceBusTemplate#setDefaultEntityType pour spécifier le type d’entité, ce qui est requis lorsqu’aucun haricot de PropertiesSupplier&lt;String, ProducerProperties&gt; n’est fourni pour le ProducerProperties#entityType.
  • Supprimer l’en-tête de message AzureHeaders.RAW_ID. Utilisez ServiceBusMessageHeaders.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-migrator lors 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 StorageQueueOperation et fournissez StorageQueueTemplate à la place.
  • Supprimez checkpoint-mode configuration dans StorageQueueTemplate, ne prenez en charge que le mode MANUAL.

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 StorageQueueOperation et fournissez StorageQueueTemplate à la place.
  • Supprimez checkpoint-mode configuration dans StorageQueueTemplate, ne prenez en charge que le mode MANUAL.

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-migrator lors 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-migrator lors 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. Utilisez ServiceBusMessageHeaders.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.