Guide de migration pour Spring Cloud Azure 4.0

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

Introduction

Nous allons appeler des bibliothèques dont l’ID de groupe et l’ID d’artefact suivent le modèle des bibliothèques modernes, ainsi que celles avec le modèle com.azure.spring:azure-spring-boot-*com.azure.spring:spring-cloud-azure-* , com.azure.spring:azure-spring-cloud-*ou com.azure.spring:azure-spring-integration-* les bibliothèques héritées.

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

La connaissance du com.azure.spring:azure-spring-boot-*package ou com.azure.spring:azure-spring-integration-* de l’utilisation com.azure.spring:azure-spring-cloud-* du package est supposée.

Si vous débutez avec les bibliothèques Spring Cloud Azure 4.0, consultez le guide du développeur Spring Cloud Azure plutôt que ce guide.

Avantages de la migration

Une question naturelle à poser lorsque vous envisagez d’adopter une nouvelle version ou bibliothèque est ses avantages. À mesure qu’Azure a mûri et a été adopté par un groupe plus diversifié de développeurs, nous nous sommes concentrés sur l’apprentissage des modèles et des pratiques afin de mieux prendre en charge la productivité des développeurs et de comprendre les lacunes que présentent les bibliothèques Azure Spring Cloud.

Plusieurs domaines de commentaires cohérents ont été exprimés dans les bibliothèques Azure Spring Cloud. Le plus important est que les bibliothèques pour différents services Azure n’ont pas activé l’ensemble complet de configurations. En outre, l’incohérence du nommage de projet, des ID d’artefacts, des versions et des configurations a rendu la courbe d’apprentissage raide.

Pour améliorer l’expérience de développement dans les bibliothèques Azure Spring Cloud, un ensemble de directives de conception a été introduit pour s’assurer que les bibliothèques Azure Spring Cloud ont une sensation naturelle et idiomatique par rapport à l’écosystème Spring. Vous trouverez plus d’informations dans le document de conception pour ceux qui vous intéressent.

Spring Cloud Azure 4.0 offre l’expérience partagée entre les bibliothèques qui s’intègrent à différents projets Spring, par exemple Spring Boot, Spring Integration, Spring Cloud Stream, et ainsi de suite. L’expérience partagée comprend :

  • Un boM unifié pour inclure toutes les bibliothèques Spring Cloud Azure 4.0.
  • Convention d’affectation de noms cohérente pour les artefacts.
  • Un moyen unifié de configurer les informations d’identification, le proxy, les nouvelles tentatives, l’environnement cloud et les paramètres de couche de transport.
  • La prise en charge de toutes les méthodes d’authentification prises en charge par un service Azure ou le Kit de développement logiciel (SDK) Azure Service.

Vue d’ensemble

Ce guide de migration se compose des sections suivantes :

  • Modifications de nommage pour Spring Cloud Azure 4.0
  • Modifications d’artefact : renommé / ajouté / supprimé
  • Changements de dépendances
  • Modifications de l’authentification
  • Propriétés de configuration
  • Changements cassants de l’API
  • Modifications apportées à la bibliothèque

Modifications des dénominations

Il n’y a jamais eu de nom cohérent ou officiel pour appeler toutes les bibliothèques Azure Spring Cloud. Certains d’entre eux ont été appelés Azure Spring Boot et certains d’entre eux Spring on Azure. Depuis la version 4.0, nous avons commencé à utiliser le nom Spring Cloud Azure du projet pour représenter toutes les bibliothèques Azure Spring.

Nomenclature

Nous avons utilisé pour expédier deux BOM pour nos bibliothèques, le azure-spring-boot-bom et azure-spring-cloud-dependencies, mais nous avons combiné ces deux BOM en un boM depuis 4.0, le spring-cloud-azure-dependencies. Ajoutez une entrée dans la dependencyManagement section de votre projet pour tirer parti de la gestion des dépendances.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>4.14.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Remarque

Si vous utilisez Spring Boot 3.x, veillez à définir la spring-cloud-azure-dependencies version 5.8.0sur . Pour plus d’informations sur la spring-cloud-azure-dependencies version, consultez La version de Spring Cloud Azure à utiliser.

Modifications d’artefact : renommé / ajouté / supprimé

Les ID de groupe sont identiques pour les bibliothèques Azure Spring Cloud modernes et héritées. Ils sont tous com.azure.spring. Les ID d’artefact pour les bibliothèques Azure Spring Cloud modernes ont changé. Selon le projet Spring auquel il appartient, Spring Boot, Spring Integration ou Spring Cloud Stream, le modèle d’ID d’artefact peut être spring-cloud-azure-starter-[service], spring-integration-azure-[service]ou spring-cloud-azure-stream-binder-[service]. Les starters hérités pour chacun possèdent un ID d’artefact suivant le modèle azure-spring-*. Cela fournit un moyen rapide et accessible pour vous aider à comprendre, en un clin d’œil, que vous utilisiez des démarrages modernes ou hérités.

Dans le processus de développement d’Azure Spring Cloud 4.0, nous avons renommé certains artefacts pour les faire suivre les nouvelles conventions d’affectation de noms, supprimé certains artefacts afin que la fonctionnalité puisse être placée dans un artefact plus approprié et ajouté de nouveaux artefacts pour mieux servir certains scénarios.

Le tableau suivant présente les mappages entre l’ID d’artefact hérité et l’ID d’artefact moderne :

ID d’artefact hérité ID d’artefact moderne Description
azure-spring-boot-starter spring-cloud-azure-starter Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel spring-cloud-azure-starter artefact.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory Renommage de l’artefact.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c Renommage de l’artefact.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos Renommage de l’artefact à ajouter data, indiquant à l’aide de Spring Data Azure Cosmos DB.
azure-spring-boot-starter-keyvault-certificates Non applicable Non inclus dans cette version, mais sera pris en charge dans la version ultérieure.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets Renommage de l’artefact.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms Renommage de l’artefact.
azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
L’artefact hérité contient les fonctionnalités de Stockage blob et de partage de fichiers, il a été splicé en deux artefacts distincts dans la version 4.0, spring-cloud-azure-starter-storage-blob et spring-cloud-azure-starter-storage-file-share.
azure-spring-boot Non applicable Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel spring-cloud-azure-autoconfigure artefact.
azure-spring-cloud-autoconfigure Non applicable Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans le nouvel spring-cloud-azure-autoconfigure artefact.
azure-spring-cloud-context Non applicable Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans les nouveaux spring-cloud-azure-autoconfigure artefacts spring-cloud-azure-resourcemanager .
azure-spring-cloud-messaging spring-messaging-azure L’annotation de l’écouteur de messagerie a été supprimée.
azure-spring-cloud-starter-cache Non applicable Cet artefact a été supprimé, pour utiliser redis, ajoutez simplement spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager et spring-cloud-azure-starter. Pour plus d’informations sur l’utilisation, consultez la prise en charge d’Azure Redis Spring Cloud.
azure-spring-cloud-starter-eventhubs-kafka Non applicable Cet artefact a été supprimé, pour utiliser kafka, ajoutez simplement spring kafka, spring-cloud-azure-resourcemanager et spring-cloud-azure-starter. Pour plus d’informations sur l’utilisation, consultez la prise en charge d’Azure Kafka d’Azure Spring Cloud.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Renommage de l’artefact pour ajouter integration, indiquant l’utilisation de Spring Integration avec Event Hubs.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Renommez l’artefact pour ajouter integration, indiquant l’utilisation de Spring Integration avec Service Bus.
azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue Renommage de l’artefact pour ajouter integration, indiquant l’utilisation de Spring Integration avec Stockage File d’attente.
azure-spring-cloud-storage Non applicable Cet artefact a été supprimé avec toutes les fonctionnalités fusionnées dans le nouvel spring-cloud-azure-autoconfigure artefact.
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs Cet artefact a été refactorisé à l’aide d’une nouvelle conception, principalement spring-cloud-azure-stream-binder-eventhubs et spring-cloud-azure-stream-binder-eventhubs-core.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core Renommage de l’artefact.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans l’artefact spring-cloud-azure-stream-binder-servicebus .
azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Cet artefact a été supprimé avec toutes les fonctionnalités à fusionner dans l’artefact spring-cloud-azure-stream-binder-servicebus .
azure-spring-integration-core spring-integration-azure-core Renommage de l’artefact.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Renommez l’artefact.
azure-spring-integration-servicebus spring-integration-azure-servicebus Renommez l’artefact.
azure-spring-integration-storage-queue spring-integration-azure-storage-queue Renommez l’artefact.
Non applicable spring-cloud-azure-actuator Artefact Spring Cloud Azure Actuator nouvellement ajouté.
Non applicable spring-cloud-azure-actuator-autoconfigure L’artefact Spring Cloud Azure Actuator AutoConfigure récemment ajouté, y compris la configuration automatique pour l’actionneur.
Non applicable spring-cloud-azure-autoconfigure Nouvel artefact Spring Cloud Azure AutoConfigure, y compris toutes les configurations automatiques pour les clients sdk, prise en charge de Spring Security, prise en charge de Spring Data et prise en charge de Spring Integration.
Non applicable spring-cloud-azure-core Artefact Spring Cloud Azure Core récemment ajouté, y compris toutes les fonctionnalités principales.
Non applicable spring-cloud-azure-resourcemanager Artefact Resource Manager nouvellement ajouté. Il s’agit de la bibliothèque principale à l’aide d’Azure Resource Manager pour lire les métadonnées et créer des ressources.
Non applicable spring-cloud-azure-service Artefact Spring Cloud Azure Service récemment ajouté, y compris les abstractions pour les services Azure.
Non applicable spring-cloud-azure-starter-appconfiguration Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure App Configuration.
Non applicable spring-cloud-azure-starter-cosmos Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Cosmos DB.
Non applicable spring-cloud-azure-starter-eventhubs Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Event Hubs.
Non applicable spring-cloud-azure-starter-servicebus Démarrage nouvellement ajouté pour l’utilisation du client sdk Azure Service Bus.
Non applicable spring-cloud-azure-starter-storage-blob Démarrage nouvellement ajouté pour l’utilisation de Stockage Azure client du Kit de développement logiciel (SDK) Blob.
Non applicable spring-cloud-azure-starter-storage-file-share Vous venez d’ajouter un démarrage pour utiliser Stockage Azure client sdk de partage de fichiers.
Non applicable spring-cloud-azure-starter-storage-queue Démarrage nouvellement ajouté pour l’utilisation de Stockage Azure client du Kit de développement logiciel (SDK) file d’attente.
Non applicable spring-cloud-azure-starter-stream-eventhubs Nouveau démarrage pour l’utilisation d’Azure Event Hubs Spring Cloud Stream Binder.
Non applicable spring-cloud-azure-starter-stream-servicebus Démarrage nouvellement ajouté pour l’utilisation d’Azure Service Bus Spring Cloud Stream Binder
Non applicable spring-cloud-azure-stream-binder-eventhubs-core Artefact Spring Cloud Stream core récemment ajouté pour Azure Event Hubs.

Modifications des dépendances

Certaines dépendances inutiles ont été incluses dans les artefacts hérités, que nous avons supprimés dans les bibliothèques Spring Cloud Azure 4.0 modernes. Veillez à ajouter manuellement les dépendances supprimées à votre projet pour éviter les blocages.

Les bibliothèques qui ont des modifications de dépendance sont les suivantes :

Modifications de l’authentification

Spring Cloud Azure 4.0 prend en charge toutes les méthodes d’authentification que chaque Kit de développement logiciel (SDK) du service Azure prend en charge. Il vous permet de configurer des informations d’identification de jeton globales, ainsi que de fournir les informations d’identification du jeton à chaque niveau de service. Toutefois, les informations d’identification ne sont pas nécessaires pour configurer Spring Cloud Azure 4.0, car elles peuvent appliquer les informations d’identification stockées dans un environnement de développement local ou une identité managée dans Azure Services. Assurez-vous que le principal a reçu une autorisation suffisante pour accéder aux ressources Azure cibles.

Remarque

Lorsque vous attribuez des rôles aux principaux de sécurité pour interagir avec les services de messagerie Azure, les Data rôles associés sont nécessaires pour effectuer des opérations de messagerie. Pour les bibliothèques Azure Spring Apps Stream Event Hubs / Service Bus Binder, Contributor le rôle est requis lorsque la fonction de création automatique de ressources est nécessaire. Pour plus d’informations, voir Rôles intégrés Azure.

Les informations d’identification chaînées sont DefaultAzureCredential configurées automatiquement par défaut et sont utilisées par tous les composants si aucune information d’authentification supplémentaire n’est spécifiée. Pour plus d’informations, consultez la section DefaultAzureCredential de la bibliothèque de client Azure Identity pour Java.

Propriétés de configuration

Migration des propriétés

Nous avons créé un fichier additional-spring-configuration-metadata.json pour faciliter la migration des propriétés lors de l’utilisation avec spring-boot-properties-migrator. Tout d’abord, ajoutez la migration de propriété suivante à votre application :

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-properties-migrator</artifactId>
    <scope>runtime</scope>
</dependency>

Ou, si vous utilisez Gradle :

runtime("org.springframework.boot:spring-boot-properties-migrator")

Si vous exécutez l’application, elle identifie les propriétés qui ne sont plus gérées par Spring Cloud Azure. S’il existe un remplacement, il remapira temporairement la propriété pour vous avec un avertissement. S’il n’y a pas de remplacement, un rapport d’erreurs vous fournira plus d’informations. Dans les deux cas, la configuration doit être mise à jour et la dépendance supprimée une fois que vous avez mis à jour la configuration.

Avant de continuer, il est judicieux d’utiliser la fonctionnalité de recherche de votre IDE pour double-case activée que vous n’utilisez pas l’une des propriétés que vous avez migrées dans un test d’intégration.

Remarque

Nous avons modifié de nombreuses propriétés de configuration dans cette modification. L’utilisation de l’outil spring-boot-properties-migrator vous aidera à faciliter votre migration.

Configurations globales

La version moderne spring-cloud-azure-starter vous permet de définir des propriétés qui s’appliquent à tous les Kits de développement logiciel (SDK) Azure dans l’espace de noms spring.cloud.azure. Cette fonctionnalité n’a pas été prise en charge dans l’ancien azure-spring-boot-starter. Les configurations globales peuvent être divisées en cinq catégories, indiquées dans le tableau suivant :

Préfixe Description
spring.cloud.azure.client Configure les clients de transport sous chaque Kit de développement logiciel (SDK) Azure.
spring.cloud.azure.credential Configure comment s’authentifier avec l’ID Microsoft Entra.
spring.cloud.azure.profile Configure l’environnement cloud Azure.
spring.cloud.azure.proxy Configure les options de proxy, s’applique à tous les clients du Kit de développement logiciel (SDK) Azure.
spring.cloud.azure.retry Configure les options de nouvelle tentative, s’applique à tous les clients du Kit de développement logiciel (SDK) Azure. Les options de nouvelle tentative ont pris en charge une partie des kits SDK, il n’y a pas spring.cloud.azure.cosmos.retry.

Pour obtenir la liste complète des configurations, consultez les propriétés de configuration d’Azure Spring Cloud.

Configurer chaque Kit de développement logiciel (SDK)

Pour plus d’informations sur les options de configuration au niveau du Kit de développement logiciel (SDK), utilisez les liens suivants :

Changements 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 d’azure-spring-boot-starter.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Changements de dépendances

Certaines dépendances inutiles ont été incluses dans les artefacts hérités, que nous avons supprimés dans les bibliothèques Spring Cloud Azure 4.0 modernes. Veillez à ajouter manuellement les dépendances supprimées à votre projet pour éviter un blocage involontaire.

Le tableau suivant présente les dépendances supprimées :

Dépendances supprimées Description
org.springframework.boot :spring-boot-starter-validation Incluez le démarrage de validation si vous souhaitez utiliser le validateur Hibernate.

D’azure-spring-boot-starter-active-directory à spring-cloud-azure-starter-active-directory

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-active-directory à partir de la version 3 d’azure-spring-boot-starter-active-directory.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Changements de dépendances

Certaines dépendances inutiles dans l’artefact hérité ont été supprimées depuis la bibliothèque Spring Cloud Azure 4.0 moderne. Ajoutez ces dépendances supprimées à votre projet pour éviter un blocage involontaire.

Le tableau suivant présente les dépendances supprimées :

Dépendances supprimées Description
com.fasterxml.jackson.core :jackson-databind Ajoutez cette dépendance à votre projet si nécessaire.
io.projectreactor.netty :reactor-netty Ajoutez cette dépendance à votre projet si nécessaire.
org.springframework.boot :spring-boot-starter-validation Ajoutez cette dépendance à votre projet si nécessaire.
org.springframework.boot :spring-boot-starter-webflux Ajoutez cette dépendance à votre projet si nécessaire.

Modifications de configuration du Kit de développement logiciel (SDK)

Cette section inclut les modifications apportées aux propriétés ajoutées, supprimées et modifiées.

  • Les deux points suivants sont les principaux à faire attention à :
  1. Le préfixe de toutes les propriétés de configuration a changé 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 montre les mappages de propriétés entre azure-spring-boot-starter-active-directory et spring-cloud-azure-starter-active-directory:

Propriétés héritées Propriétés modernes
azure.activedirectory.app-id-uri spring.cloud.azure.active-directory.app-id-uri
azure.activedirectory.application-type spring.cloud.azure.active-directory.application-type
azure.activedirectory.authorization-clients spring.cloud.azure.active-directory.authorization-clients
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes
azure.activedirectory.authenticate-additional-parameters spring.cloud.azure.active-directory.authenticate-additional-parameters
azure.activedirectory.base-uri spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint
azure.activedirectory.client-id spring.cloud.azure.active-directory.credential.client-id
azure.activedirectory.client-secret spring.cloud.azure.active-directory.credential.client-secret
azure.activedirectory.graph-membership-uri Pour plus d’informations, consultez le tableau suivant.
azure.activedirectory.jwt-connect-timeout spring.cloud.azure.active-directory.jwt-connect-timeout.
azure.activedirectory.jwt-read-timeout spring.cloud.azure.active-directory.jwt-read-timeout.
azure.activedirectory.jwt-size-limit spring.cloud.azure.active-directory.jwt-size-limit.
azure.activedirectory.jwk-set-cache-durée de vie spring.cloud.azure.active-directory.jwk-set-cache-durée de vie.
azure.activedirectory.jwk-set-cache-refresh-time spring.cloud.azure.active-directory.jwk-set-cache-refresh-time
azure.activedirectory.post-logout-redirect-uri spring.cloud.azure.active-directory.post-logout-redirect-uri
azure.activedirectory.session-stateless spring.cloud.azure.active-directory.session-stateless
azure.activedirectory.redirect-uri-template spring.cloud.azure.active-directory.redirect-uri-template
azure.activedirectory.resource-server.claim-to-authority-prefix-map spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map
azure.activedirectory.resource-server.principal-claim-name spring.cloud.azure.active-directory.resource-server.principal-claim-name
azure.activedirectory.tenant-id spring.cloud.azure.active-directory.profile.tenant-id
azure.activedirectory.user-group.allowed-group-ids spring.cloud.azure.active-directory.user-group.allowed-group-ids
azure.activedirectory.user-group.allowed-group-names spring.cloud.azure.active-directory.user-group.allowed-group-names
azure.activedirectory.user-name-attribute spring.cloud.azure.active-directory.user-name-attribute
  • Le type de valeur des propriétés suivantes est remplacé par longDuration:

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • Les propriétés suivantes sont supprimées :

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

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

Remarque

La fonction d’a azure.activedirectory.graph-membership-uri été remplacée par 2 propriétés : spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint et spring.cloud.azure.active-directory.user-group.use-transitive-members. La première propriété est utilisée pour spécifier le nom d’hôte et le deuxième indicateur pour utiliser le chemin d’URL : v1.0/me/memberOf ou v1.0/me/transitiveMemberOf.

Voici quelques exemples de migration :

  • Exemple 1. Cas 1

    • Pour l’héritage : azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • Pour moderne : spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=false

  • Exemple 2. Cas 2

    • Pour l’héritage : azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • Pour moderne : spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=true

Modifications d'API

Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-active-directory :spring-cloud-azure-starter-active-directory

Classe héritée Classe moderne
com.azure.spring.aad.webapi.AADJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.aad.webapi.AADResourceServerProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadResourceServerProperties
com.azure.spring.aad.webapi.AADResourceServerWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadResourceServerWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AADWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties
com.azure.spring.aad.AADApplicationType com.azure.spring.cloud.autoconfigure.aad.properties.AadApplicationType
com.azure.spring.aad.AADAuthorizationGrantType com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType
com.azure.spring.aad.AADAuthorizationServerEndpoints com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationServerEndpoints
com.azure.spring.aad.AADClientRegistrationRepository com.azure.spring.cloud.autoconfigure.aad.AadClientRegistrationRepository
com.azure.spring.aad.AADTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aad.AadTrustedIssuerRepository
com.azure.spring.autoconfigure.aad.AADAppRoleStatelessAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAppRoleStatelessAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthenticationProperties
com.azure.spring.autoconfigure.aad.UserPrincipal com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipal
com.azure.spring.autoconfigure.aad.UserPrincipalManager com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipalManager

Cette section répertorie les classes supprimées d’azure-spring-boot-starter-active-directory.

  • Classe héritée supprimée

    • com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
    • com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
    • com.azure.spring.aad.webapi.validator.AADJwtClaimValidator

D’azure-spring-boot-starter-active-directory-b2c à spring-cloud-azure-starter-active-directory-b2c

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-active-directory-b2c à partir de la version 3 d’azure-spring-boot-starter-active-directory-b2c.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Changements de dépendances

Certaines dépendances inutiles ont été incluses dans les artefacts hérités, que nous avons supprimés dans les bibliothèques Spring Cloud Azure 4.0 modernes. Veillez à ajouter manuellement les dépendances supprimées à votre projet pour éviter un blocage involontaire.

Le tableau suivant présente les dépendances supprimées :

Dépendances supprimées Description
org.springframework.boot :spring-boot-starter-validation Incluez le démarrage de validation si vous souhaitez utiliser le validateur Hibernate.

Modifications de configuration du Kit de développement logiciel (SDK)

Cette section inclut les modifications apportées aux propriétés ajoutées, supprimées et modifiées.

  • Les deux points suivants sont les principaux à faire attention à :
  1. Tous les noms de propriétés de configuration ont changé le préfixe de azure.activedirectory.b2c .spring.cloud.azure.active-directory.b2c
  2. Une nouvelle propriété spring.cloud.azure.active-directory.b2c.enabled est ajoutée pour autoriser les fonctionnalités associées à l’activation/désactivation d’Azure AD B2C. La valeur par défaut est false (Faux).

Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-active-directory-b2c :spring-cloud-azure-starter-active-directory-b2c

Propriétés héritées Propriétés modernes
azure.activedirectory.b2c.authenticate-additional-parameters spring.cloud.azure.active-directory.b2c.authenticate-additional-parameters
azure.activedirectory.b2c.authorization-clients spring.cloud.azure.active-directory.b2c.authorization-clients
azure.activedirectory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.authorization-grant-type spring.cloud.azure.active-directory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.authorization-grant-type
azure.activedirectory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.scopes spring.cloud.azure.active-directory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.scopes
azure.activedirectory.b2c.app-id-uri spring.cloud.azure.active-directory.b2c.app-id-uri
azure.activedirectory.b2c.base-uri spring.cloud.azure.active-directory.b2c.base-uri
azure.activedirectory.b2c.client-id spring.cloud.azure.active-directory.b2c.credential.client-id
azure.activedirectory.b2c.client-secret spring.cloud.azure.active-directory.b2c.credential.client-secret
azure.activedirectory.b2c.jwt-connect-timeout spring.cloud.azure.active-directory.b2c.jwt-connect-timeout
azure.activedirectory.b2c.jwt-read-timeout spring.cloud.azure.active-directory.b2c.jwt-read-timeout
azure.activedirectory.b2c.jwt-size-limit spring.cloud.azure.active-directory.b2c.jwt-size-limit
azure.activedirectory.b2c.login-flow spring.cloud.azure.active-directory.b2c.login-flow
azure.activedirectory.b2c.logout-success-url spring.cloud.azure.active-directory.b2c.logout-success-url
azure.activedirectory.b2c.reply-url spring.cloud.azure.active-directory.b2c.reply-url
azure.activedirectory.b2c.tenant-id spring.cloud.azure.active-directory.b2c.profile.tenant-id
azure.activedirectory.b2c.user-flows spring.cloud.azure.active-directory.b2c.user-flow
azure.activedirectory.b2c.user-name-attribute-name spring.cloud.azure.active-directory.b2c.user-name-attribute-name
  • Suppression des propriétés d’azure-spring-boot-starter-active-directory-b2c :

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • Le type de valeur des propriétés suivantes est remplacé par longDuration:

    • jwt-connect-timeout
    • jwt-read-timeout

Modifications d'API

Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-active-directory-b2c :spring-cloud-azure-starter-active-directory-b2c

Classe héritée Classe moderne
com.azure.spring.autoconfigure.b2c.AADB2CAuthorizationRequestResolver com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cAuthorizationRequestResolver
com.azure.spring.autoconfigure.b2c.AADB2CJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.autoconfigure.b2c.AADB2CLogoutSuccessHandler com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cLogoutSuccessHandler
com.azure.spring.autoconfigure.b2c.AADB2COidcLoginConfigurer com.azure.spring.cloud.autoconfigure.aadb2c.AadB2COidcLoginConfigurer
com.azure.spring.autoconfigure.b2c.AADB2CProperties com.azure.spring.cloud.autoconfigure.aadb2c.properties.AadB2cProperties
com.azure.spring.autoconfigure.b2c.AADB2CTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cTrustedIssuerRepository
com.azure.spring.autoconfigure.b2c.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties

D’azure-spring-boot-starter-cosmos à spring-cloud-azure-starter-data-cosmos

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-data-cosmos à partir de la version 3 d’azure-spring-boot-starter-cosmos.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Tous les noms de propriétés de configuration ont changé le préfixe de azure.cosmos .spring.cloud.azure.cosmos

Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-cosmos :spring-cloud-azure-starter-data-cosmos

Propriétés héritées Propriétés modernes
azure.cosmos.connection-mode spring.cloud.azure.cosmos.connection-mode
azure.cosmos.consistency-level spring.cloud.azure.cosmos.consistency-level
azure.cosmos.database spring.cloud.azure.cosmos.database
azure.cosmos.key spring.cloud.azure.cosmos.key
azure.cosmos.populate-query-metrics spring.cloud.azure.cosmos.populate-query-metrics
azure.cosmos.uri spring.cloud.azure.cosmos.endpoint

D’azure-spring-boot-starter-keyvault-secrets à spring-cloud-azure-starter-keyvault-secrets

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-keyvault-secrets à partir de la version 3 d’azure-spring-boot-starter-keyvault-secrets.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Cette section inclut les modifications apportées aux propriétés ajoutées, supprimées et modifiées.

Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-keyvault-secrets :spring-cloud-azure-starter-keyvault-secrets

Propriétés héritées Propriétés modernes
azure.keyvault.case-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].respect de la casse
azure.keyvault.certificate-password spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password
azure.keyvault.certificate-path spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path
azure.keyvault.client-id spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id
azure.keyvault.client-key spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret
azure.keyvault.enabled spring.cloud.azure.keyvault.secret.property-source-enabled et spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order N'est plus pris en charge. Utilisez l’ordre dans property-source[n] à la place.
azure.keyvault.refresh-interval spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval
azure.keyvault.secret-keys spring.cloud.azure.keyvault.secret.property-source[n].secret-keys
azure.keyvault.tenant-id spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id
azure.keyvault.uri spring.cloud.azure.keyvault.secret.property-source[n].endpoint
  • Suppression des propriétés de spring-cloud-azure-starter-keyvault-secrets

azure.keyvault.allow-telemetry azure.keyvault.order

Les points suivants doivent vous intéresser :

  1. Tous les noms de propriétés de configuration ont changé le préfixe de azure.keyvault .spring.cloud.azure.keyvault.secret
  2. spring.cloud.azure.keyvault.secret.enabledest utilisé pour activer toutes les fonctionnalités de secret Key Vault, notamment configurer les haricots clients de secret Key Vault (comme SecretClient et ) et les ajouter KeyVaultPropertySourceConfigurableEnvironment.SecretAsyncClient
  3. spring.cloud.azure.keyvault.secret.property-source-enabled est utilisé pour activer tout KeyVaultPropertySource. Elle n’aura effet que lorsque spring.cloud.azure.keyvault.secret.enabled=true.
  4. Pour les propriétés courantes Azure (telles queclient, , proxy, retrycredential, profile) et les propriétés Key Vault (par exempleendpoint, service-version). S’il spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME n’est pas configuré, spring.cloud.azure.keyvault.secret.PROPERTY_NAME il est 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 d’azure-spring-boot-starter-servicebus-jms.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Type de configuration pour spring.jms.servicebus.idle-timeout passer de long(millisecondes) au Duration modèle pour la lisibilité.

D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-blob

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-storage-blob à partir de la version 3 d’azure-spring-boot-starter-storage.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Tous les noms de propriétés de configuration ont changé le préfixe de azure.storage .spring.cloud.azure.storage.blob

Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-storage :spring-cloud-azure-starter-storage-blob

Propriétés héritées Propriétés modernes
azure.storage.account-name spring.cloud.azure.storage.blob.account-name
azure.storage.account-key spring.cloud.azure.storage.blob.account-key
azure.storage.blob-endpoint spring.cloud.azure.storage.blob.endpoint

Modifications d'API

Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-storage :spring-cloud-azure-starter-storage-blob

Classe héritée Classe moderne
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ProtocolResolver com.azure.spring.core.resource.Azure Stockage BlobProtocolResolver
com.azure.spring.autoconfigure.storage.resource.Blob Stockage Resource com.azure.spring.core.resource. Stockage BlobResource
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ResourcePatternResolver com.azure.spring.core.resource.Azure Stockage BlobProtocolResolver

D’azure-spring-boot-starter-storage à spring-cloud-azure-starter-storage-file-share

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-storage-file-share à partir de la version 3 d’azure-spring-boot-starter-storage.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Tous les noms de propriétés de configuration ont changé le préfixe de azure.storage .spring.cloud.azure.storage.fileshare

Le tableau suivant montre les mappages de propriétés à partir de azure-spring-boot-starter-storage :spring-cloud-azure-starter-storage-file-share

Propriétés héritées Propriétés modernes
azure.storage.account-name spring.cloud.azure.storage.fileshare.account-name
azure.storage.account-key spring.cloud.azure.storage.fileshare.account-key
azure.storage.file-endpoint spring.cloud.azure.storage.fileshare.endpoint

Modifications d'API

Le tableau suivant montre les mappages de classes à partir de azure-spring-boot-starter-storage :spring-cloud-azure-starter-storage-file-share

Classe héritée Classe moderne
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ProtocolResolver com.azure.spring.core.resource.Azure Stockage FileProtocolResolver
com.azure.spring.autoconfigure.storage.resource.File Stockage Resource com.azure.spring.core.resource. Stockage FileResource
com.azure.spring.autoconfigure.storage.resource.Azure Stockage ResourcePatternResolver com.azure.spring.core.resource.Azure Stockage FileProtocolResolver

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

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-integration-eventhubs à partir de la version 2 d’azure-spring-cloud-starter-eventhubs.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Important

Le préfixe de configuration a été remplacé par spring.cloud.azure.eventhubspring.cloud.azure.eventhubs.

Pour connaître les modifications apportées aux entrées enfants pour ce préfixe, consultez les tableaux suivants :

Le tableau suivant présente les mappages de propriétés de azure-spring-cloud-starter-eventhubs :spring-cloud-azure-starter-integration-eventhubs

Propriétés héritées Propriétés modernes
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.case activéepoint-storage-account spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-name
spring.cloud.azure.eventhub.case activéeclé d’accès point spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-key
spring.cloud.azure.eventhub.case activéepoint-container spring.cloud.azure.eventhubs.processor.case activéepoint-store.container-name

Par exemple, changez de :

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}

to:

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}

Modifications d'API

  • Pour connaître les modifications apportées aux annotations de l’écouteur, consultez le guide de migration de la <<bibliothèque migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> .
  • Supprimer EventHubOperation avec la fonction d’abonnement déplacée vers la classe EventHubsMessageListenerContainer et la fonction d’envoi déplacée vers EventHubsTemplate.
  • Renommez-le EventHubInboundChannelAdapter pour EventHubsInboundChannelAdapter rester cohérent avec le service d’Azure Event Hubs.
  • Modifiez le constructeur de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) vers EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) et EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Remplacez CheckpointConfig le style d’instanciation par le constructeur simple au lieu du style de build.
  • Supprimer l’API EventHubOperation#setCheckpointConfig. Pour définir la configuration case activée point de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeEventHubsContainerProperties#setCheckpointConfig.
  • Supprimer l’API EventHubOperation#setBatchConsumerConfig. Pour définir la configuration consommatrice de lots pour l’adaptateur de canal entrant, les utilisateurs peuvent appeler les deux mé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.
    • Modifier l’en-tête de message de azure_eventhub_enqueued_time vers azure_eventhubs_batch_converted_enqueued_time.
    • Modifier l’en-tête de message de azure_eventhub_offset vers azure_eventhubs_batch_converted_offset.
    • Modifier l’en-tête de message de azure_eventhub_sequence_number vers azure_eventhubs_batch_converted_sequence_number.
    • Modifier l’en-tête de message de azure_partition_key vers 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 BATCH mode case activée point fonctionne uniquement en mode de consommation par lots maintenant, qui peut être activé en passant ListenerMode.BATCH au constructeur EventHubsInboundChannelAdapter.

Le tableau suivant montre les mappages de classes à partir de azure-spring-cloud-starter-eventhubs :spring-cloud-azure-starter-integration-eventhubs

Classe héritée Classe moderne
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core. case activée point. CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core. case activée point. CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging. case activée point. Point de contrôle
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

Exemple d’extrait de code

  • EventHubsInboundChannelAdapter exemple de code :

    Code hérité :

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

    Code moderne :

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

    Code hérité :

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

    Code moderne :

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

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

Ce guide est destiné à faciliter la migration vers spring-integration-azure-eventhubs à partir de la version 2 d’azure-spring-integration-eventhubs.

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .

Modifications d'API

  • Supprimer EventHubOperation avec la fonction d’abonnement déplacée vers la classe EventHubsMessageListenerContainer et la fonction d’envoi déplacée vers EventHubsTemplate.
  • Renommez-le EventHubInboundChannelAdapter pour EventHubsInboundChannelAdapter rester cohérent avec le service d’Azure Event Hubs.
  • Modifiez le constructeur de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) vers EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) et EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Remplacez CheckpointConfig le style d’instanciation par le constructeur simple au lieu du style de build.
  • Supprimer l’API EventHubOperation#setCheckpointConfig. Pour définir la configuration case activée point de l’adaptateur de canal entrant, les utilisateurs peuvent appeler la méthodeEventHubsContainerProperties#setCheckpointConfig.
  • Supprimer l’API EventHubOperation#setBatchConsumerConfig. Pour définir la configuration consommatrice de lots pour l’adaptateur de canal entrant, les utilisateurs peuvent appeler les deux mé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.
    • Modifier l’en-tête de message de azure_eventhub_enqueued_time vers azure_eventhubs_batch_converted_enqueued_time.
    • Modifier l’en-tête de message de azure_eventhub_offset vers azure_eventhubs_batch_converted_offset.
    • Modifier l’en-tête de message de azure_eventhub_sequence_number vers azure_eventhubs_batch_converted_sequence_number.
    • Modifier l’en-tête de message de azure_partition_key vers 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 BATCH mode case activée point fonctionne uniquement en mode de consommation par lots maintenant, qui peut être activé en passant ListenerMode.BATCH au constructeur EventHubsInboundChannelAdapter.

Le tableau suivant montre les mappages de classes à partir de azure-spring-integration-eventhubs :spring-integration-azure-eventhubs

Classe héritée Classe moderne
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core. case activée point. CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core. case activée point. CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging. case activée point. Point de contrôle
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

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

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-integration-servicebus à partir de la version 2 d’azure-spring-cloud-starter-servicebus.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Pour toutes les options de configuration prises en charge, spring-cloud-azure-starter-integration-servicebusle préfixe reste en tant que spring.cloud.azure.servicebus.

Le tableau suivant montre les mappages de propriétés à partir de azure-spring-cloud-starter-servicebus :spring-cloud-azure-starter-integration-servicebus

Propriétés héritées Propriétés modernes
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retry spring.cloud.azure.servicebus.retry.exponential.max-retry ou spring.cloud.azure.servicebus.retry.fixed.max-retries, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout

Modifications d'API

  • Supprimez ServiceBusQueueOperation 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 et ServiceBusTopicInboundChannelAdapterdéplacez ServiceBusQueueInboundChannelAdapter les fonctionnalités permettant d’écouter une entité file d’attente/rubrique Service Bus vers ServiceBusInboundChannelAdapter.
  • Modifiez le constructeur de ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) vers ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Modifiez le constructeur de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) vers ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Supprimer des ServiceBusQueueOperation#setCheckpointConfig API et ServiceBusTopicOperation#setCheckpointConfig. Pour définir la configuration case activée point pour 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, il équivaut au MANUAL mode case activée point et à l’activer déclenche le RECORD mode.
  • Supprimer des ServiceBusQueueOperatio#setClientConfig API et ServiceBusTopicOperation#setClientConfig. Pour configurer le sous-jacent ServiceBusProcessorClient utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliser ServiceBusContainerProperties à la place.
  • Supprimez CompletableFuture la prise en charge et ServiceBusTemplateDefaultMessageHandlerla prise en charge Reactor à la place.
  • Ajoutez une nouvelle API de ServiceBusTemplate#setDefaultEntityType sorte à spécifier le type d’entité, qui est requis lorsqu’aucune bean of PropertiesSupplier&lt;String, ProducerProperties&gt; n’est fournie pour le ProducerProperties#entityType.
  • Supprimer l’en-tête AzureHeaders.RAW_IDde message . Utilisez ServiceBusMessageHeaders.MESSAGE_ID à la place.

Le tableau suivant montre les mappages de classes à partir de azure-spring-cloud-starter-servicebus :spring-cloud-azure-starter-integration-servicebus

Classe héritée Classe moderne
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

Exemple d’extrait de code

  • ServiceBusInboundChannelAdapter exemple de code :

    Code hérité d’utilisation ServiceBusQueueInboundChannelAdapter ou 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 d’azure-spring-integration-servicebus.

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .

Modifications d'API

  • Supprimez ServiceBusQueueOperation 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 et ServiceBusTopicInboundChannelAdapterdéplacez ServiceBusQueueInboundChannelAdapter les fonctionnalités permettant d’écouter une entité file d’attente/rubrique Service Bus vers ServiceBusInboundChannelAdapter.
  • Modifiez le constructeur de ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) vers ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Modifiez le constructeur de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) vers ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) et ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Supprimer des ServiceBusQueueOperation#setCheckpointConfig API et ServiceBusTopicOperation#setCheckpointConfig. Pour définir la configuration case activée point pour 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, il équivaut au MANUAL mode case activée point et à l’activer déclenche le RECORD mode.
  • Supprimer des ServiceBusQueueOperation#setClientConfig API et ServiceBusTopicOperation#setClientConfig. Pour configurer le sous-jacent ServiceBusProcessorClient utilisé par l’adaptateur de canal entrant, les utilisateurs peuvent utiliser ServiceBusContainerProperties à la place.
  • Supprimez CompletableFuture la prise en charge et ServiceBusTemplateDefaultMessageHandlerla prise en charge Reactor à la place.
  • Ajoutez une nouvelle API de ServiceBusTemplate#setDefaultEntityType sorte à spécifier le type d’entité, qui est requis lorsqu’aucune bean of PropertiesSupplier&lt;String, ProducerProperties&gt; n’est fournie pour le ProducerProperties#entityType.
  • Supprimer l’en-tête AzureHeaders.RAW_IDde message . Utilisez ServiceBusMessageHeaders.MESSAGE_ID à la place.

Le tableau suivant montre les mappages de classes à partir de azure-spring-integration-servicebus :spring-integration-azure-servicebus

Classe héritée Classe moderne
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

D’azure-spring-cloud-starter-storage-queue à spring-cloud-azure-starter-integration-storage-queue

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-starter-integration-storage-queue à partir de la version 2 d’azure-spring-cloud-starter-storage-queue.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Tous les noms de propriétés de configuration ont changé le préfixe de spring.cloud.azure.storage .spring.cloud.azure.storage.queue

Le tableau suivant montre les mappages de propriétés à partir de azure-spring-cloud-starter-storage-queue :spring-cloud-azure-starter-integration-storage-queue

Propriétés héritées Propriétés modernes
spring.cloud.azure.storage.account spring.cloud.azure.storage.queue.account-name
spring.cloud.azure.storage.access-key spring.cloud.azure.storage.queue.account-key
spring.cloud.azure.storage.resource-group spring.cloud.azure.storage.queue.resource.resource-group

Modifications d'API

  • Supprimez et fournissez StorageQueueOperationStorageQueueTemplate à la place.
  • Supprimer checkpoint-mode la configuration dans StorageQueueTemplate, prend uniquement en charge le MANUAL mode.

Le tableau suivant montre les mappages de classes de azure-spring-cloud-starter-storage-queue vers spring-cloud-azure-starter-integration-storage-queue.

Classe héritée Classe moderne
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter. Stockage QueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter. Stockage QueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging. case activée point. Point de contrôle
com.azure.spring.integration.storage.queue. Stockage QueueTemplate com.azure.spring.storage.queue.core. Stockage QueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource

D’azure-spring-integration-storage-queue à spring-integration-azure-storage-queue

Ce guide est destiné à faciliter la migration vers spring-integration-azure-storage-queue à partir de la version 2 d’azure-spring-integration-storage-queue.

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .

Modifications d'API

  • Supprimez et fournissez StorageQueueOperationStorageQueueTemplate à la place.
  • Supprimer checkpoint-mode la configuration dans StorageQueueTemplate, prend uniquement en charge le MANUAL mode.

Le tableau suivant montre les mappages de classes de azure-spring-integration-storage-queue vers spring-integration-azure-storage-queue.

Classe héritée Classe moderne
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter. Stockage QueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter. Stockage QueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging. case activée point. Point de contrôle
com.azure.spring.integration.storage.queue. Stockage QueueTemplate com.azure.spring.storage.queue.core. Stockage QueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource com.azure.spring.integration.storage.queue.inbound. Stockage QueueMessageSource

À partir d’azure-spring-cloud-stream-binder-eventhubs vers spring-cloud-azure-stream-binder-eventhubs

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-stream-binder-eventhubs à partir de la version 2 d’azure-spring-cloud-stream-binder-eventhubs.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Important

Le préfixe de configuration a été remplacé par spring.cloud.azure.eventhubspring.cloud.azure.eventhubs.

Important

Le type de classeur est renommé de : eventhub à eventhubs.

Pour connaître les modifications apportées aux entrées enfants pour le préfixe suivant, consultez le tableau suivant.

Le tableau suivant présente les mappages de propriétés de azure-spring-cloud-stream-binder-eventhubs :spring-cloud-azure-stream-binder-eventhubs

Propriétés héritées Propriétés modernes
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.case activéepoint-storage-account spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-name
spring.cloud.azure.eventhub.case activéeclé d’accès point spring.cloud.azure.eventhubs.processor.case activéepoint-store.account-key
spring.cloud.azure.eventhub.case activéepoint-container spring.cloud.azure.eventhubs.processor.case activéepoint-store.container-name
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time
spring.cloud.stream.eventhub.bindings.binding-name.consumer.case activéemode point spring.cloud.stream.eventhubs.bindings.binding-name.consumer.case activéepoint.mode
spring.cloud.stream.eventhub.bindings.binding-name.consumer.case activéenombre de points spring.cloud.stream.eventhubs.bindings.binding-name.consumer.case activéepoint.count
spring.cloud.stream.eventhub.bindings.binding-name.consumer.case activéepoint-interval spring.cloud.stream.eventhubs.bindings.binding-name.consumer.case activéepoint.interval
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position

Remarque

Le type de valeur de la start-position configuration est également passé d’une énumération à com.azure.spring.integration.core.api.StartPosition une map valeur de StartPositionProperties chaque partition. Par conséquent, la clé est l’ID de partition, et la valeur inclut com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties des propriétés de décalage, de numéro de séquence, d’heure de date mise en file d’attente et d’inclusion.

Exemples de migration de configuration

Pour utiliser la chaîne de connexion pour l’authentification et migrer les propriétés mentionnées ci-dessus, les modifications de configuration sont répertoriées comme suit :

Configuration héritée :

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
    stream:
      eventhub:
        bindings:
          <binding-name>:
            consumer:
              max-batch-size: ${AZURE_MAX_BATCH_SIZE}
              max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint-mode: ${AZURE_CHECKPOINT_MODE}
              checkpoint-count: ${AZURE_CHECKPOINT_COUNT}
              checkpoint-interval: ${AZURE_CHECKPOINT_INTERVAL}
              start-position: EARLIEST

Configuration moderne :

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name:  ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
    stream:
      eventhubs:
        bindings:
          <binding-name>:
            consumer:
              batch:
                max-size: ${AZURE_MAX_BATCH_SIZE}
                max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint:
                mode: ${AZURE_CHECKPOINT_MODE}
                count: ${AZURE_CHECKPOINT_COUNT}
                interval: ${AZURE_CHECKPOINT_INTERVAL}
              initial-partition-event-position:
                0:
                  offset: earliest
                1:
                  sequence-number: 100
                2:
                  enqueued-date-time: 2022-01-12T13:32:47.650005Z
                4:
                  inclusive: false

Si vous utilisez des principaux de sécurité au lieu de chaîne de connexion s, dans les versions antérieures à la version 4.0, l’application se connecte d’abord à Azure Resource Manager (ARM) avec le principal de sécurité fourni, puis récupère la chaîne de connexion de l’espace de noms spécifié avec ARM. À la fin, l’application utilise le chaîne de connexion récupéré pour se connecter à Azure Event Hubs. De cette façon, le principal de sécurité fourni doit être accordé avec le rôle Contributeur pour récupérer l’espace de noms Azure Event Hubs associé.

Pour Azure Spring Apps 4.0, nous fournissons deux façons d’exploiter les principaux de sécurité pour l’authentification. L’un utilise toujours les principaux pour se connecter à ARM et récupérer les chaîne de connexion où le Contributor rôle est requis pour les principaux. L’autre tire parti des principaux de sécurité pour s’authentifier auprès de Microsoft Entra ID, puis se connecter directement à Azure Event Hubs. Dans ce cas, le Contributor rôle n’est plus nécessaire, tandis que d’autres Data rôles associés sont requis pour les opérations de messagerie. Pour vous assurer que le principal de sécurité a reçu l’autorisation suffisante pour accéder à la ressource Azure, consultez Autoriser l’accès avec l’ID Microsoft Entra.

Pour l’authentification basée sur ARM, en prenant par exemple le principal de service, la migration de configuration est répertoriée ci-dessous, où le rôle affecté ne doit pas changer :

Configuration héritée :

spring:
  cloud:
    azure:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
      tenant-id: <tenant>
      resource-group: ${EVENTHUB_RESOURCE_GROUP}
      eventhub:
        namespace: ${EVENTHUB_NAMESPACE}

Remarque

Les valeurs autorisées tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.

La configuration moderne, les propriétés de l’ID d’abonnement Azure et du groupe de ressources sont requises :

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: <tenant>
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      eventhubs:
        namespace: ${EVENTHUB_NAMESPACE}
        resource:
          resource-group: ${RESOURCE_GROUP}

Remarque

Les valeurs autorisées tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.

Vous pouvez également migrer vers l’authentification et l’autorisation avec l’ID Microsoft Entra directement sans effectuer un détour vers ARM. Veillez à accorder les rôles nécessaires Data au principal de sécurité pour les opérations de messagerie. Les exemples de configuration du principal de service et de l’identité managée sont répertoriés comme suit :

  • Avec un principal de service

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: <tenant>
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    

Remarque

Les valeurs autorisées tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.

  • Avec une identité managée

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    

Modifications d'API

Le tableau suivant montre les mappages de classes de azure-spring-cloud-stream-binder-eventhubs vers spring-cloud-azure-stream-binder-eventhubs.

Classe héritée Classe moderne
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging. case activée point. Point de contrôle
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders

D’azure-spring-cloud-stream-binder-servicebus-* à spring-cloud-azure-stream-binder-servicebus

Ce guide est destiné à faciliter la migration vers spring-cloud-azure-stream-binder-servicebus à partir de la version 2 d’azure-spring-cloud-stream-binder-servicebus-queueou azure-spring-cloud-stream-binder-servicebus-topic.

Pour obtenir des informations générales, utilisez les liens suivants :

  • Pour obtenir une vue d’ensemble des modifications apportées à la version 4.0, consultez les sections Avantages de l’introduction et de la migration.
  • Pour en savoir plus sur les modifications de stratégie dans l’affectation de noms de projet, consultez la section Modifications de nommage .
  • Pour savoir comment utiliser une boM pour toutes les bibliothèques Azure Spring Cloud, consultez la section BOM .
  • Pour savoir comment gérer l’authentification dans Spring Cloud Azure 4.0, consultez la section Modifications de l’authentification.
  • Pour savoir comment tirer parti spring-boot-properties-migrator pendant la migration, consultez la section Configurer chaque kit SDK .
  • Pour en savoir plus sur les modifications de configuration globales et courantes, consultez la section Configurations globales.

Modifications de configuration du Kit de développement logiciel (SDK)

Important

Les bibliothèques de classeur héritées sont azure-spring-cloud-stream-binder-servicebus-queue et azure-spring-cloud-stream-binder-servicebus-topic, maintenant, elles sont fusionnées en un spring-cloud-azure-stream-binder-servicebus.

Important

Le type de classeur est combiné à partir de servicebus-queue et servicebus-topic en tant que servicebus.

Le tableau suivant répertorie les nouvelles propriétés de configuration de spring-cloud-azure-stream-binder-servicebus:

Propriétés modernes Description
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type Si vous utilisez la fonction d’envoi, vous devez définir le type d’entité, que vous pouvez définir sur la rubrique ou la file d’attente.

Le tableau suivant montre les mappages de propriétés à partir de azure-spring-cloud-stream-binder-servicebus-* :spring-cloud-azure-stream-binder-servicebus

Propriétés héritées Propriétés modernes
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retry spring.cloud.azure.servicebus.retry.exponential.max-retry ou spring.cloud.azure.servicebus.retry.fixed.max-retries, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, doit être configuré en fonction de spring.cloud.azure.servicebus.retry.mode=fixed ou exponentiel
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout
spring.cloud.stream.servicebus.queue.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.Concurrence spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.mode case activée point spring.cloud.stream.servicebus.bindings.binding-name.consumer.saisie semi-automatique
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Concurrence spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.mode case activée point spring.cloud.stream.servicebus.bindings.binding-name.consumer.saisie semi-automatique

Remarque

La propriété d’accès concurrentiel est remplacée par les maxConcurrentSessions lorsque sessionsEnabled est true et maxConcurrentCalls lorsque sessionsEnabled est false.

Remarque

L’activation de la saisie semi-automatique est égale au RECORD mode case activée point et en mode opposéMANUAL.

Exemples de migration de configuration

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

spring:
  cloud:
    azure:
      servicebus:
        connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
    stream:
      function:
        definition: consume;supply
      bindings:
        consume-in-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
        supply-out-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
      servicebus:
        queue:
          bindings:
            consume-in-0:
              consumer:
                checkpoint-mode: MANUAL

Configuration moderne :

spring:
  cloud:
    azure:
      servicebus:
        connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
    stream:
      function:
        definition: consume;supply
      bindings:
        consume-in-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
        supply-out-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
      servicebus:
        bindings:
          consume-in-0:
            consumer:
              auto-complete: false
          supply-out-0:
            producer:
              entity-type: queue #set as topic if needed

Si vous utilisez des principaux de sécurité au lieu de chaîne de connexion s, dans les versions antérieures à la version 4.0, l’application se connecte d’abord à Azure Resource Manager (ARM) avec le principal de sécurité fourni, puis récupère la chaîne de connexion de l’espace de noms spécifié avec ARM. À la fin, l’application utilise le chaîne de connexion récupéré pour se connecter à Azure Service Bus. De cette façon, le principal de sécurité fourni doit être accordé avec le rôle Contributeur pour récupérer l’espace de noms Azure Service Bus associé.

Pour Azure Spring Apps 4.0, nous fournissons deux façons d’exploiter les principaux de sécurité pour l’authentification. L’un utilise toujours les principaux pour se connecter à ARM et récupérer les chaîne de connexion où le Contributor rôle est requis pour les principaux. L’autre tire parti des principaux de sécurité pour s’authentifier auprès de Microsoft Entra ID, puis se connecter directement à Azure Service Bus. Dans ce cas, le Contributor rôle n’est plus nécessaire, tandis que d’autres Data rôles associés sont requis pour les opérations de messagerie. Pour vous assurer que le principal de sécurité a reçu l’autorisation suffisante pour accéder à la ressource Azure, consultez Autoriser l’accès avec l’ID Microsoft Entra.

Pour l’authentification basée sur ARM, en prenant par exemple le principal de service, la migration de configuration est répertoriée ci-dessous, où le rôle affecté ne doit pas changer :

Configuration héritée :

spring:
  cloud:
    azure:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
      tenant-id: <tenant>
      resource-group: ${SERVICEBUS_RESOURCE_GROUP}
      servicebus:
        namespace: ${SERVICEBUS_NAMESPACE}

Remarque

Les valeurs autorisées tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.

La configuration moderne, les propriétés de l’ID d’abonnement Azure et du groupe de ressources sont requises :

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: <tenant>
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      servicebus:
        namespace: ${SERVICEBUS_NAMESPACE}
        resource:
          resource-group: ${SERVICEBUS_RESOURCE_GROUP}

Remarque

Les valeurs autorisées tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.

Vous pouvez également migrer vers l’authentification et l’autorisation avec l’ID Microsoft Entra directement sans effectuer un détour vers ARM. Veillez à accorder les rôles nécessaires Data au principal de sécurité pour les opérations de messagerie. Les exemples de configuration du principal de service et de l’identité managée sont répertoriés comme suit :

  • Avec un principal de service

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: <tenant>
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    

Remarque

Les valeurs autorisées tenant-id sont : common, organizations, consumersou l’ID de locataire. Pour plus d’informations sur ces valeurs, consultez la section Utiliser le point de terminaison incorrect (comptes personnels et d’organisation) de l’erreur AADSTS50020 - Le compte d’utilisateur du fournisseur d’identité n’existe pas dans le locataire. Pour plus d’informations sur la conversion de votre application monolocataire, consultez Convertir une application monolocataire en multilocataire sur l’ID Microsoft Entra.

  • Avec une identité managée

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned   managed identity
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    

Modifications d'API

  • Supprimer l’en-tête AzureHeaders.RAW_IDde message . Utilisez ServiceBusMessageHeaders.MESSAGE_ID à la place.

Le tableau suivant montre les mappages de classes de azure-spring-cloud-stream-binder-eventhubs vers spring-cloud-azure-stream-binder-eventhubs.

Classe héritée Classe moderne
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.core.api.Checkpointer com.azure.spring.messaging. case activée point. Point de contrôle

azure-spring-cloud-messaging

La com.azure.spring:azure-spring-cloud-messaging bibliothèque n’est pas prête pour la version 4.0. La fonction d’annotations de l’écouteur est en cours de refonte. Par conséquent, @AzureMessageListenersles annotations et @EnableAzureMessaging les @AzureMessageListenerannotations ne sont pas prises en charge actuellement.