Guía de migración para Spring Cloud Azure 4.0
Esta guía ayuda a migrar a Spring Cloud Azure 4.0 desde bibliotecas heredadas de Azure Spring.
Introducción
Llamaremos a bibliotecas cuyo identificador de grupo e identificador de artefacto siguen el patrón com.azure.spring:spring-cloud-azure-*
de las bibliotecas modernas y las que tienen el patrón com.azure.spring:azure-spring-boot-*
, com.azure.spring:azure-spring-cloud-*
o com.azure.spring:azure-spring-integration-*
las bibliotecas heredadas .
Esta guía se centrará en comparaciones en paralelo para configuraciones similares entre las bibliotecas modernas y heredadas.
Se supone que está familiarizado con com.azure.spring:azure-spring-boot-*
, com.azure.spring:azure-spring-cloud-*
o com.azure.spring:azure-spring-integration-*
el paquete.
Si no está familiarizado con las bibliotecas de Spring Cloud Azure 4.0, consulte la guía para desarrolladores de Azure de Spring Cloud en lugar de esta guía.
Ventajas de la migración
Una pregunta natural que se debe plantear al considerar si adoptar una nueva versión o biblioteca es sus ventajas. A medida que Azure ha madurado y ha sido adoptado por un grupo más diverso de desarrolladores, nos hemos centrado en aprender los patrones y prácticas para admitir mejor la productividad del desarrollador y comprender las brechas que tienen las bibliotecas de Azure de Spring Cloud.
Hubo varias áreas de comentarios coherentes expresadas en las bibliotecas de Azure de Spring Cloud. Lo más importante es que las bibliotecas de diferentes servicios de Azure no han habilitado el conjunto completo de configuraciones. Además, la incoherencia de la nomenclatura del proyecto, los identificadores de artefacto, las versiones y las configuraciones hicieron que la curva de aprendizaje empinó.
Para mejorar la experiencia de desarrollo en las bibliotecas de Azure de Spring Cloud, se introdujo un conjunto de directrices de diseño para garantizar que las bibliotecas de Azure de Spring Cloud tengan una sensación natural e idiomática con respecto al ecosistema de Spring. Encontrará más detalles en el documento de diseño para aquellos interesados.
Spring Cloud Azure 4.0 proporciona la experiencia compartida entre bibliotecas que se integran con diferentes proyectos de Spring, como Spring Boot, Spring Integration, Spring Cloud Stream, etc. La experiencia compartida incluye:
- Una lista de materiales unificada para incluir todas las bibliotecas de Spring Cloud Azure 4.0.
- Una convención de nomenclatura coherente para los artefactos.
- Una manera unificada de configurar las credenciales, el proxy, el reintento, el entorno en la nube y la configuración de la capa de transporte.
- Admite todos los métodos de autenticación compatibles con un servicio de Azure o un SDK de servicio de Azure.
Información general
Esta guía de migración consta de las secciones siguientes:
- Cambios de nomenclatura para Spring Cloud Azure 4.0
- Cambios en el artefacto: cambio de nombre, agregado o eliminado
- Cambios de dependencia
- Cambios de autenticación
- Propiedades de configuración
- Cambios importantes en las API
- Cambios en la biblioteca
Cambios de nomenclatura
Nunca ha habido un nombre coherente o oficial para llamar a todas las bibliotecas de Azure de Spring Cloud. Algunos de ellos fueron llamados Azure Spring Boot
y algunos de ellos Spring on Azure
. Desde la versión 4.0, empezamos a usar el nombre Spring Cloud Azure
del proyecto para representar todas las bibliotecas de Azure Spring.
L. MAT
Usamos para enviar dos BOM para nuestras bibliotecas, y azure-spring-boot-bom
azure-spring-cloud-dependencies
, pero combinamos estas dos BOM en una BOM desde la versión 4.0, .spring-cloud-azure-dependencies
Agregue una entrada en la dependencyManagement
sección del proyecto para beneficiarse de la administración de dependencias.
<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>
Nota:
Si usa Spring Boot 3.x, asegúrese de establecer la spring-cloud-azure-dependencies
versión 5.8.0
en .
Para obtener más información sobre la spring-cloud-azure-dependencies
versión, consulte Qué versión de Spring Cloud Azure debería usar.
Cambios en el artefacto: cambio de nombre, agregado o eliminado
Los identificadores de grupo son los mismos para las bibliotecas de Azure modernas y heredadas de Spring Cloud. Son todos com.azure.spring
. Los identificadores de artefacto para las bibliotecas modernas de Azure de Spring Cloud han cambiado. Según el proyecto de Spring al que pertenece, Spring Boot, Spring Integration o Spring Cloud Stream, el patrón de identificadores de artefacto podría ser spring-cloud-azure-starter-[service]
, spring-integration-azure-[service]
o spring-cloud-azure-stream-binder-[service]
. Los inicios heredados de cada uno tienen un identificador de artefacto siguiendo el patrón azure-spring-*
. Esto proporciona un medio rápido y accesible para ayudar a comprender, de un vistazo, tanto si usa inicios modernos como heredados.
En el proceso de desarrollo de Spring Cloud Azure 4.0, hemos cambiado el nombre de algunos artefactos para que sigan las nuevas convenciones de nomenclatura, elimine algunos artefactos para que la funcionalidad pueda colocarse en un artefacto más adecuado y agregue algunos artefactos nuevos para atender mejor algunos escenarios.
En la tabla siguiente se muestran las asignaciones entre el identificador de artefacto heredado y el identificador de artefacto moderno:
Id. de artefacto heredado | Identificador de artefacto moderno | Descripción |
---|---|---|
azure-spring-boot-starter | spring-cloud-azure-starter | Este artefacto se ha eliminado con toda la funcionalidad que se combina en el nuevo spring-cloud-azure-starter artefacto. |
azure-spring-boot-starter-active-directory | spring-cloud-azure-starter-active-directory | Se ha cambiado el nombre del artefacto. |
azure-spring-boot-starter-active-directory-b2c | spring-cloud-azure-starter-active-directory-b2c | Se ha cambiado el nombre del artefacto. |
azure-spring-boot-starter-cosmos | spring-cloud-azure-starter-data-cosmos | Se ha cambiado el nombre del artefacto para agregar data , que indica el uso de Spring Data Azure Cosmos DB. |
azure-spring-boot-starter-keyvault-certificates | no aplicable | No se incluye en esta versión, pero se admitirá en versiones posteriores. |
azure-spring-boot-starter-keyvault-secrets | spring-cloud-azure-starter-keyvault-secrets | Se ha cambiado el nombre del artefacto. |
azure-spring-boot-starter-servicebus-jms | spring-cloud-azure-starter-servicebus-jms | Se ha cambiado el nombre del artefacto. |
azure-spring-boot-starter-storage | spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
El artefacto heredado contiene la funcionalidad de Storage Blob y File Share, se ha spliced en dos artefactos independientes en 4.0, spring-cloud-azure-starter-storage-blob y spring-cloud-azure-starter-azure-starter-storage-file-share. |
azure-spring-boot | no aplicable | Este artefacto se ha eliminado con toda la funcionalidad que se combina en el nuevo spring-cloud-azure-autoconfigure artefacto. |
azure-spring-cloud-autoconfigure | no aplicable | Este artefacto se ha eliminado con toda la funcionalidad que se combina en el nuevo spring-cloud-azure-autoconfigure artefacto. |
azure-spring-cloud-context | no aplicable | Este artefacto se ha eliminado con toda la funcionalidad que se combina en los artefactos y spring-cloud-azure-resourcemanager nuevosspring-cloud-azure-autoconfigure . |
azure-spring-cloud-messaging | spring-messaging-azure | Se ha quitado la anotación del agente de escucha de mensajería. |
azure-spring-cloud-starter-cache | no aplicable | Este artefacto se ha eliminado, para usar redis, solo tiene que agregar spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager y spring-cloud-azure-starter. Para más información sobre el uso, consulte Compatibilidad con Spring Cloud Azure Redis. |
azure-spring-cloud-starter-eventhubs-kafka | no aplicable | Este artefacto se ha eliminado, para usar kafka, basta con agregar spring kafka, spring-cloud-azure-resourcemanager y spring-cloud-azure-starter. Para más información sobre el uso, consulte Compatibilidad con Azure Kafka de Spring Cloud. |
azure-spring-cloud-starter-eventhubs | spring-cloud-azure-starter-integration-eventhubs | Se ha cambiado el nombre del artefacto para agregar integration , que indica el uso de Spring Integration con Event Hubs. |
azure-spring-cloud-starter-servicebus | spring-cloud-azure-starter-integration-servicebus | Se ha cambiado el nombre del artefacto para agregar integration , que indica el uso de Spring Integration con Service Bus. |
azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Se ha cambiado el nombre del artefacto para agregar integration , que indica el uso de Spring Integration with Storage Queue. |
azure-spring-cloud-storage | no aplicable | Este artefacto se ha eliminado con todas las funcionalidades combinadas en el nuevo spring-cloud-azure-autoconfigure artefacto. |
azure-spring-cloud-stream-binder-eventhubs | spring-cloud-azure-stream-binder-eventhubs | Este artefacto se ha refactorizado mediante un nuevo diseño, principalmente spring-cloud-azure-stream-binder-eventhubs y spring-cloud-azure-stream-binder-eventhubs-core . |
azure-spring-cloud-stream-binder-service-core | spring-cloud-azure-stream-binder-servicebus-core | Se ha cambiado el nombre del artefacto. |
azure-spring-cloud-stream-binder-servicebus-queue | spring-cloud-azure-stream-binder-servicebus | Este artefacto se ha eliminado con toda la funcionalidad que se combina en el spring-cloud-azure-stream-binder-servicebus artefacto. |
azure-spring-cloud-stream-binder-servicebus-topic | spring-cloud-azure-stream-binder-servicebus | Este artefacto se ha eliminado con toda la funcionalidad que se combina en el spring-cloud-azure-stream-binder-servicebus artefacto. |
azure-spring-integration-core | spring-integration-azure-core | Se ha cambiado el nombre del artefacto. |
azure-spring-integration-eventhubs | spring-integration-azure-eventhubs | Cambie el nombre del artefacto. |
azure-spring-integration-servicebus | spring-integration-azure-servicebus | Cambie el nombre del artefacto. |
azure-spring-integration-storage-queue | spring-integration-azure-storage-queue | Cambie el nombre del artefacto. |
no aplicable | spring-cloud-azure-actuador | El artefacto del accionador de Azure de Spring Cloud recién agregado. |
no aplicable | spring-cloud-azure-actuator-autoconfigure | El artefacto Autoconfigure de Spring Cloud Azure Actuator recién agregado, incluida la configuración automática para el accionador. |
no aplicable | spring-cloud-azure-autoconfigure | Se ha agregado recientemente el artefacto De configuración automática de Azure de Spring Cloud, incluida toda la configuración automática para los clientes del SDK, la compatibilidad con Spring Security, la compatibilidad con Spring Data y la compatibilidad con Spring Integration. |
no aplicable | spring-cloud-azure-core | Artefacto de Spring Cloud Azure Core recién agregado, incluida toda la funcionalidad básica. |
no aplicable | spring-cloud-azure-resourcemanager | Artefacto de Resource Manager recién agregado. Es la biblioteca principal que usa Azure Resource Manager para leer metadatos y crear recursos. |
no aplicable | spring-cloud-azure-service | Se ha agregado recientemente el artefacto de Spring Cloud Azure Service, incluidas las abstracciones para los servicios de Azure. |
no aplicable | spring-cloud-azure-starter-appconfiguration | Se acaba de agregar el inicio para usar App de Azure cliente del SDK de configuración. |
no aplicable | spring-cloud-azure-starter-cosmos | Se ha agregado recientemente el inicio para usar el cliente del SDK de Azure Cosmos DB. |
no aplicable | spring-cloud-azure-starter-eventhubs | Inicio recién agregado para usar el cliente del SDK de Azure Event Hubs. |
no aplicable | spring-cloud-azure-starter-servicebus | Se ha agregado recientemente el inicio para usar el cliente del SDK de Azure Service Bus. |
no aplicable | spring-cloud-azure-starter-storage-blob | Se ha agregado recientemente el inicio para usar el cliente del SDK de Blob de Azure Storage. |
no aplicable | spring-cloud-azure-starter-storage-file-share | Se ha agregado recientemente el inicio para usar el cliente del SDK del recurso compartido de archivos de Azure Storage. |
no aplicable | spring-cloud-azure-starter-storage-queue | Se ha agregado recientemente el inicio para usar el cliente del SDK de cola de Azure Storage. |
no aplicable | spring-cloud-azure-starter-stream-eventhubs | Se ha agregado recientemente el inicio para usar Azure Event Hubs Spring Cloud Stream Binder. |
no aplicable | spring-cloud-azure-starter-stream-servicebus | Inicio recién agregado para usar Azure Service Bus Spring Cloud Stream Binder |
no aplicable | spring-cloud-azure-stream-binder-eventhubs-core | Artefacto principal de Spring Cloud Stream recién agregado para Azure Event Hubs. |
Cambios en las dependencias
Algunas dependencias innecesarias se incluyeron en los artefactos heredados, que hemos quitado en las bibliotecas modernas de Azure 4.0 de Spring Cloud. Asegúrese de agregar las dependencias eliminadas manualmente al proyecto para evitar bloqueos.
Las bibliotecas que tienen cambios de dependencia incluyen:
- spring-cloud-azure-starter
- spring-cloud-azure-starter-active-directory
- spring-cloud-azure-starter-active-directory-b2c
Cambios de autenticación
Spring Cloud Azure 4.0 admite todos los métodos de autenticación que admite cada SDK de servicio de Azure. Permite configurar una credencial de token global, así como proporcionar la credencial de token en cada nivel de servicio. Pero no se requiere una credencial para configurar Spring Cloud Azure 4.0 porque puede aplicar la credencial almacenada en un entorno de desarrollo local o una identidad administrada en los servicios de Azure. Asegúrese de que a la entidad de seguridad se le ha concedido permiso suficiente para acceder a los recursos de Azure de destino.
Nota:
Cuando se asignan roles a las entidades de seguridad para interactuar con los servicios de mensajería de Azure, se requieren los Data
roles relacionados para realizar operaciones de mensajería. En el caso de las bibliotecas de Azure Spring Apps Stream Event Hubs/Service Bus Binder, Contributor
se requiere el rol cuando se necesita la función de creación automática de recursos. Para más información, consulte Roles integrados en Azure.
Una credencial encadenada, el DefaultAzureCredential
bean se configura automáticamente de forma predeterminada y lo usarán todos los componentes si no se especifica más información de autenticación. Para más información, consulte la sección DefaultAzureCredential de la biblioteca cliente de Azure Identity para Java.
Propiedades de configuración
Migración de propiedades
Hemos creado un archivo additional-spring-configuration-metadata.json para suavizar la migración de propiedades cuando se usa con spring-boot-properties-migrator
. En primer lugar, agregue el siguiente migrador de propiedades a la aplicación:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
O bien, si usa Gradle:
runtime("org.springframework.boot:spring-boot-properties-migrator")
Si ejecuta la aplicación, identificará las propiedades que ya no administra Spring Cloud Azure. Si hay un reemplazo, volverá a asignar temporalmente la propiedad por usted con una advertencia. Si no hay un reemplazo, un informe de errores le proporcionará más información. En cualquier caso, la configuración debe actualizarse y la dependencia se ha quitado una vez que haya actualizado la configuración.
Antes de continuar, es recomendable usar la característica de búsqueda del IDE para comprobar que no usa una de las propiedades que ha migrado en una prueba de integración.
Nota:
Hemos cambiado muchas propiedades de configuración en este cambio. El uso de ayudará a suavizar la spring-boot-properties-migrator
migración.
Configuraciones globales
El moderno spring-cloud-azure-starter
permite definir propiedades que se aplican a todos los SDK de Azure en el espacio de nombres spring.cloud.azure
. Esta característica no se admite en el heredado azure-spring-boot-starter
. Las configuraciones globales se pueden dividir en cinco categorías, que se muestran en la tabla siguiente:
Prefijo | Descripción |
---|---|
spring.cloud.azure.client | Configura los clientes de transporte debajo de cada SDK de Azure. |
spring.cloud.azure.credential | Configura cómo autenticarse con el identificador de Entra de Microsoft. |
spring.cloud.azure.profile | Configura el entorno de nube de Azure. |
spring.cloud.azure.proxy | Configura las opciones de proxy y se aplica a todos los clientes del SDK de Azure. |
spring.cloud.azure.retry | Configura las opciones de reintento, se aplica a todos los clientes de Azure SDK. Las opciones de reintento han admitido parte de los SDK, no hay ningún spring.cloud.azure.cosmos.retry . |
Para obtener una lista completa de las configuraciones, consulte Propiedades de configuración de Azure de Spring Cloud.
Configuración de cada SDK
Para obtener más información sobre las opciones de configuración en el nivel de SDK, use los vínculos siguientes:
- Desde azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory
- De azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c
- De azure-spring-boot-starter-cosmos a spring-cloud-azure-starter-data-cosmos
- De azure-spring-boot-starter-keyvault-secrets a spring-cloud-azure-starter-keyvault-secrets
- Desde azure-spring-boot-starter-servicebus-jms a spring-cloud-azure-starter-servicebus-jms
- De azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob
- Desde azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share
- Desde azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs
- Desde azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus
- Desde azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
- Desde azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs
- Desde azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus
Cambios importantes en las API
Para más información sobre los cambios importantes de api en cada biblioteca, use los vínculos siguientes:
- Desde azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory
- De azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c
- De azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob
- Desde azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share
- Desde azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs
- Desde azure-spring-integration-eventhubs a spring-integration-azure-eventhubs
- Desde azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus
- Desde azure-spring-integration-servicebus a spring-integration-azure-servicebus
- Desde azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
- Desde azure-spring-integration-storage-queue a spring-integration-azure-storage-queue
- Desde azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs
- Desde azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus
Cambios en la biblioteca
Los cambios importantes en cada biblioteca se presentan de la siguiente manera.
De azure-spring-boot-starter a spring-cloud-azure-starter
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter desde la versión 3 de azure-spring-boot-starter.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios de dependencia
Algunas dependencias innecesarias se incluyeron en los artefactos heredados, que hemos quitado en las bibliotecas modernas de Spring Cloud Azure 4.0. Asegúrese de agregar las dependencias eliminadas manualmente al proyecto para evitar un bloqueo accidental.
En la tabla siguiente se muestran las dependencias quitadas:
Dependencias eliminadas | Descripción |
---|---|
org.springframework.boot:spring-boot-starter-validation | Incluya el inicio de validación si desea usar el validador hibernado. |
Desde azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory
Esta guía está pensada para ayudar a la migración a spring-cloud-azure-starter-active-directory desde la versión 3 de azure-spring-boot-starter-active-directory.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios de dependencia
Se han quitado algunas dependencias innecesarias del artefacto heredado desde la biblioteca moderna de Spring Cloud Azure 4.0. Agregue estas dependencias eliminadas al proyecto para evitar bloqueos accidentales.
En la tabla siguiente se muestran las dependencias quitadas:
Dependencias eliminadas | Descripción |
---|---|
com.fasterxml.jackson.core:jackson-databind | Agregue esta dependencia al proyecto si es necesario. |
io.projectreactor.netty:reactor-netty | Agregue esta dependencia al proyecto si es necesario. |
org.springframework.boot:spring-boot-starter-validation | Agregue esta dependencia al proyecto si es necesario. |
org.springframework.boot:spring-boot-starter-webflux | Agregue esta dependencia al proyecto si es necesario. |
Cambios en la configuración del SDK
En esta sección se incluyen los cambios sobre las propiedades agregadas, eliminadas y modificadas.
- Los dos puntos siguientes son los principales para prestar atención a:
- El prefijo de todos los nombres de propiedad de configuración ha cambiado de
azure.activedirectory
aspring.cloud.azure.active-directory
. - Se agrega una nueva propiedad
spring.cloud.azure.active-directory.enabled
para habilitar o deshabilitar las características relacionadas con Microsoft Entra. El valor predeterminado esfalse
.
En la tabla siguiente se muestran las asignaciones de propiedades entre azure-spring-boot-starter-active-directory
y spring-cloud-azure-starter-active-directory
:
Propiedades heredadas | Propiedades modernas |
---|---|
azure.activedirectory.app-id-uri | spring.cloud.azure.active-directory.app-id-uri |
azure.activedirectory.application-type | tipo spring.cloud.azure.active-directory.application |
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 | Consulte la tabla siguiente para obtener más información. |
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-lifespan | spring.cloud.azure.active-directory.jwk-set-cache-lifespan. |
azure.activedirectory.jwk-set-cache-refresh-time | spring.cloud.azure.active-directory.jwk-set-cache-refresh-time |
azure.activedirectory.post-logout-redirect-uri | spring.cloud.azure.active-directory.post-logout-redirect-uri |
azure.activedirectory.session-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 |
El tipo de valor de las siguientes propiedades se cambia de
long
aDuration
:jwt-connect-timeout
jwt-read-timeout
jwk-set-cache-lifespan
jwk-set-cache-refresh-time
.
Se quitan las siguientes propiedades:
- azure.activedirectory.allow-telemetry
- azure.activedirectory.user-group.enable-full-list
- azure.activedirectory.graph-base-uri
- azure.activedirectory.graph-membership-uri
Se agregan las siguientes propiedades:
- 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
Nota:
La función de azure.activedirectory.graph-membership-uri
se ha reemplazado por 2 propiedades: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
y spring.cloud.azure.active-directory.user-group.use-transitive-members
. La primera propiedad se usa para especificar el nombre de host y la segunda marca para usar la ruta de acceso url: v1.0/me/memberOf
o v1.0/me/transitiveMemberOf
.
Estos son algunos ejemplos de migración:
Ejemplo 1. Caso 1
Para el heredado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Para lo moderno: 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
Ejemplo 2. Caso 2
Para el heredado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Para lo moderno: 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
Cambios de API
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-active-directory
a spring-cloud-azure-starter-active-directory
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.aad.webapi.AADJwtBearerTokenAuthenticationConverter | com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter |
com.azure.spring.aad.webapi.AADResourceServerProperties | com.azure.spring.cloud.autoconfigure.aad.properties.AadResourceServerProperties |
com.azure.spring.aad.webapi.AADResourceServerWebSecurityConfigurerAdapter | com.azure.spring.cloud.autoconfigure.aad.AadResourceServerWebSecurityConfigurerAdapter |
com.azure.spring.aad.webapp.AADWebSecurityConfigurerAdapter | com.azure.spring.cloud.autoconfigure.aad.AadWebSecurityConfigurerAdapter |
com.azure.spring.aad.webapp.AuthorizationClientProperties | com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties |
com.azure.spring.aad.AADApplicationType | com.azure.spring.cloud.autoconfigure.aad.properties.AadApplicationType |
com.azure.spring.aad.AADAuthorizationGrantType | com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType |
com.azure.spring.aad.AADAuthorizationServerEndpoints | com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationServerEndpoints |
com.azure.spring.aad.AADClientRegistrationRepository | com.azure.spring.cloud.autoconfigure.aad.AadClientRegistrationRepository |
com.azure.spring.aad.AADTrustedIssuerRepository | com.azure.spring.cloud.autoconfigure.aad.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 |
En esta sección se enumeran las clases eliminadas de azure-spring-boot-starter-active-directory.
Se quitó la clase heredada
- com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
- com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
- com.azure.spring.aad.webapi.validator.AADJwtClaimValidator
De azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-active-directory-b2c de la versión 3 de azure-spring-boot-starter-active-directory-b2c.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios de dependencia
Algunas dependencias innecesarias se incluyeron en los artefactos heredados, que hemos quitado en las bibliotecas modernas de Spring Cloud Azure 4.0. Asegúrese de agregar las dependencias eliminadas manualmente al proyecto para evitar un bloqueo accidental.
En la tabla siguiente se muestran las dependencias quitadas:
Dependencias eliminadas | Descripción |
---|---|
org.springframework.boot:spring-boot-starter-validation | Incluya el inicio de validación si desea usar el validador hibernado. |
Cambios en la configuración del SDK
En esta sección se incluyen los cambios sobre las propiedades agregadas, eliminadas y modificadas.
- Los dos puntos siguientes son los principales para prestar atención a:
- Todos los nombres de propiedad de configuración cambiaron el prefijo de
azure.activedirectory.b2c
aspring.cloud.azure.active-directory.b2c
. - Se agrega una nueva propiedad
spring.cloud.azure.active-directory.b2c.enabled
para permitir habilitar o deshabilitar las características relacionadas con Azure AD B2C. El valor predeterminado es falso.
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-active-directory-b2c
a spring-cloud-azure-starter-active-directory-b2c
:
Propiedades heredadas | Propiedades modernas |
---|---|
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-flows |
azure.activedirectory.b2c.user-name-attribute-name | spring.cloud.azure.active-directory.b2c.user-name-attribute-name |
Se han quitado las propiedades de azure-spring-boot-starter-active-directory-b2c:
- azure.activedirectory.b2c.allow-telemetry
- azure.activedirectory.b2c.tenant
El tipo de valor de las siguientes propiedades se cambia de
long
aDuration
:- jwt-connect-timeout
- jwt-read-timeout
Cambios de API
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-active-directory-b2c
a spring-cloud-azure-starter-active-directory-b2c
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.autoconfigure.b2c.AADB2CAuthorizationRequestResolver | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cAuthorizationRequestResolver |
com.azure.spring.autoconfigure.b2c.AADB2CJwtBearerTokenAuthenticationConverter | com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter |
com.azure.spring.autoconfigure.b2c.AADB2CLogoutSuccessHandler | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cLogoutSuccessHandler |
com.azure.spring.autoconfigure.b2c.AADB2COidcLoginConfigurer | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2COidcLoginConfigurer |
com.azure.spring.autoconfigure.b2c.AADB2CProperties | com.azure.spring.cloud.autoconfigure.aadb2c.properties.AadB2cProperties |
com.azure.spring.autoconfigure.b2c.AADB2CTrustedIssuerRepository | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cTrustedIssuerRepository |
com.azure.spring.autoconfigure.b2c.AuthorizationClientProperties | com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties |
De azure-spring-boot-starter-cosmos a spring-cloud-azure-starter-data-cosmos
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-data-cosmos desde la versión 3 de azure-spring-boot-starter-cosmos.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.cosmos
a spring.cloud.azure.cosmos
.
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-cosmos
a spring-cloud-azure-starter-data-cosmos
:
Propiedades heredadas | Propiedades modernas |
---|---|
azure.cosmos.connection-mode | spring.cloud.azure.cosmos.connection-mode |
nivel azure.cosmos.consistency | nivel spring.cloud.azure.cosmos.consistency |
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 |
De azure-spring-boot-starter-keyvault-secrets a spring-cloud-azure-starter-keyvault-secrets
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-keyvault-secrets de la versión 3 de azure-spring-boot-starter-keyvault-secrets.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
En esta sección se incluyen los cambios sobre las propiedades agregadas, eliminadas y modificadas.
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-keyvault-secrets
a spring-cloud-azure-starter-keyvault-secrets
:
Propiedades heredadas | Propiedades modernas |
---|---|
azure.keyvault.case-sensitive-keys | spring.cloud.azure.keyvault.secret.property-source[n].distingue mayúsculas de minúsculas |
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 y spring.cloud.azure.keyvault.secret.property-source-enabled |
azure.keyvault.order | Ya no se admite. Use el orden en property-source[n] en su lugar. |
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 |
- Propiedades eliminadas de spring-cloud-azure-starter-keyvault-secrets
azure.keyvault.allow-telemetry azure.keyvault.order
Los siguientes puntos debe prestar atención a:
- Todos los nombres de propiedad de configuración cambiaron el prefijo de
azure.keyvault
aspring.cloud.azure.keyvault.secret
. spring.cloud.azure.keyvault.secret.enabled
se usa para habilitar todas las características del secreto de Key Vault, incluya configurar los frijoles de cliente secreto de Key Vault (comoSecretClient
ySecretAsyncClient
) y agregarKeyVaultPropertySource
enConfigurableEnvironment
.spring.cloud.azure.keyvault.secret.property-source-enabled
se usa para habilitar todoKeyVaultPropertySource
. Solo surtirá efecto cuandospring.cloud.azure.keyvault.secret.enabled=true
.- Para las propiedades comunes de Azure(como
client
,proxy
,retry
,credential
,profile
) y las propiedades de Key Vault (comoendpoint
,service-version
). Sispring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME
no está configurado,spring.cloud.azure.keyvault.secret.PROPERTY_NAME
se usará. spring.cloud.azure.keyvault.secret.property-sources[n].resource
es específico de un recurso de Azure único, por lo que si no está configurado, no obtendrá valor de otros lugares.
Desde azure-spring-boot-starter-servicebus-jms a spring-cloud-azure-starter-servicebus-jms
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-servicebus-jms de la versión 3 de azure-spring-boot-starter-servicebus-jms.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Tipo de configuración para spring.jms.servicebus.idle-timeout
cambiado de long
(milisegundos) a Duration
patrón de legibilidad.
De azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-storage-blob de la versión 3 de azure-spring-boot-starter-storage.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.storage
a spring.cloud.azure.storage.blob
.
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-blob
:
Propiedades heredadas | Propiedades modernas |
---|---|
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 |
Cambios de API
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-blob
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.BlobStorageResource | com.azure.spring.core.resource.StorageBlobResource |
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
Desde azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-storage-file-share de la versión 3 de azure-spring-boot-starter-storage.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.storage
a spring.cloud.azure.storage.fileshare
.
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-file-share
:
Propiedades heredadas | Propiedades modernas |
---|---|
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 |
Cambios de API
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-storage
a spring-cloud-azure-starter-storage-file-share
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
com.azure.spring.autoconfigure.storage.resource.FileStorageResource | com.azure.spring.core.resource.StorageFileResource |
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
Desde azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-integration-eventhubs de la versión 2 de azure-spring-cloud-starter-eventhubs.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Importante
Se ha cambiado el prefijo de configuración de spring.cloud.azure.eventhub
a spring.cloud.azure.eventhubs.
Para ver los cambios en las entradas secundarias de este prefijo, consulte las tablas siguientes:
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-starter-eventhubs
a spring-cloud-azure-starter-integration-eventhubs
:
Propiedades heredadas | Propiedades modernas |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.eventhubs.resource.resource-group |
espacio de nombres spring.cloud.azure.eventhub.namespace | spring.cloud.azure.eventhubs.namespace |
spring.cloud.azure.eventhub.connection-string | spring.cloud.azure.eventhubs.connection-string |
spring.cloud.azure.eventhub.checkpoint-storage-account | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name |
spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
Por ejemplo, cambie 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}
a:
spring:
cloud:
azure:
eventhubs:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
processor:
checkpoint-store:
container-name: ${AZURE_STORAGE_CONTAINER_NAME}
account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
Cambios de API
- Para conocer los cambios en las anotaciones del agente de escucha, consulte la guía de migración de la <<biblioteca migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> .
- Quite
EventHubOperation
con la función de suscripción movida a la claseEventHubsMessageListenerContainer
y la función de envío se movió aEventHubsTemplate
. - Cambie el nombre
EventHubInboundChannelAdapter
de paraEventHubsInboundChannelAdapter
mantener la coherencia con el servicio de Azure Event Hubs. - Cambie el constructor de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
yEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Cambie
CheckpointConfig
el estilo de creación de instancias al constructor simple en lugar del estilo de compilación. - Drop API
EventHubOperation#setCheckpointConfig
. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al métodoEventHubsContainerProperties#setCheckpointConfig
. - Drop API
EventHubOperation#setBatchConsumerConfig
. Para establecer la configuración de consumo por lotes para el adaptador de canal de entrada, los usuarios pueden llamar a los dos métodosEventHubsContainerProperties#getBatch#setMaxSize
yEventHubsContainerProperties#getBatch#setMaxWaitTime
mientras tanto. - Para el modo de consumo por lotes, cambie los nombres de encabezado del mensaje convertidos de mensajes por lotes.
- Cambie el encabezado del mensaje de
azure_eventhub_enqueued_time
aazure_eventhubs_batch_converted_enqueued_time
. - Cambie el encabezado del mensaje de
azure_eventhub_offset
aazure_eventhubs_batch_converted_offset
. - Cambie el encabezado del mensaje de
azure_eventhub_sequence_number
aazure_eventhubs_batch_converted_sequence_number
. - Cambie el encabezado del mensaje de
azure_partition_key
aazure_batch_converted_partition_key
.
- Cambie el encabezado del mensaje de
- Al publicar mensajes en Event Hubs, omita todos los encabezados de mensaje convertidos de mensajes por lotes. Los encabezados incluyen:
- 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
- El
BATCH
modo de punto de control solo funciona ahora en el modo de consumo por lotes, que se puede habilitar pasandoListenerMode.BATCH
al constructor EventHubsInboundChannelAdapter.
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-starter-eventhubs
a spring-cloud-azure-starter-integration-eventhubs
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
com.azure.spring.integration.core.api.CheckpointConfig | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig |
com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Fragmento de código de ejemplo
EventHubsInboundChannelAdapter
código de ejemplo:Código heredado:
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; } }
Código moderno:
public class Demo { @Bean public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) { EventHubsContainerProperties containerProperties = new EventHubsContainerProperties(); containerProperties.setEventHubName("EVENTHUB_NAME"); containerProperties.setConsumerGroup("CONSUMER_GROUP"); CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL); containerProperties.setCheckpointConfig(config); return new EventHubsMessageListenerContainer(processorFactory, containerProperties); } @Bean public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubsMessageListenerContainer listenerContainer) { EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } }
DefaultMessageHandler
código de ejemplo:Código heredado:
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; } }
Código moderno:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL") public MessageHandler messageSender(EventHubsTemplate eventhubOperation) { DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.error("There was an error sending the message.", ex); } }); return handler; } }
Desde azure-spring-integration-eventhubs a spring-integration-azure-eventhubs
Esta guía está pensada para ayudar en la migración a spring-integration-azure-eventhubs de la versión 2 de azure-spring-integration-eventhubs.
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
Cambios de API
- Quite
EventHubOperation
con la función de suscripción movida a la claseEventHubsMessageListenerContainer
y la función de envío se movió aEventHubsTemplate
. - Cambie el nombre
EventHubInboundChannelAdapter
de paraEventHubsInboundChannelAdapter
mantener la coherencia con el servicio de Azure Event Hubs. - Cambie el constructor de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)
yEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode)
. - Cambie
CheckpointConfig
el estilo de creación de instancias al constructor simple en lugar del estilo de compilación. - Drop API
EventHubOperation#setCheckpointConfig
. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al métodoEventHubsContainerProperties#setCheckpointConfig
. - Drop API
EventHubOperation#setBatchConsumerConfig
. Para establecer la configuración de consumo por lotes para el adaptador de canal de entrada, los usuarios pueden llamar a los dos métodosEventHubsContainerProperties#getBatch#setMaxSize
yEventHubsContainerProperties#getBatch#setMaxWaitTime
mientras tanto. - Para el modo de consumo por lotes, cambie los nombres de encabezado del mensaje convertidos de mensajes por lotes.
- Cambie el encabezado del mensaje de
azure_eventhub_enqueued_time
aazure_eventhubs_batch_converted_enqueued_time
. - Cambie el encabezado del mensaje de
azure_eventhub_offset
aazure_eventhubs_batch_converted_offset
. - Cambie el encabezado del mensaje de
azure_eventhub_sequence_number
aazure_eventhubs_batch_converted_sequence_number
. - Cambie el encabezado del mensaje de
azure_partition_key
aazure_batch_converted_partition_key
.
- Cambie el encabezado del mensaje de
- Al publicar mensajes en Event Hubs, omita todos los encabezados de mensaje convertidos de mensajes por lotes. Los encabezados incluyen:
- 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
- El
BATCH
modo de punto de control solo funciona ahora en el modo de consumo por lotes, que se puede habilitar pasandoListenerMode.BATCH
al constructor EventHubsInboundChannelAdapter.
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-integration-eventhubs
a spring-integration-azure-eventhubs
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
com.azure.spring.integration.core.api.CheckpointConfig | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig |
com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Desde azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-integration-servicebus de la versión 2 de azure-spring-cloud-starter-servicebus.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Para todas las opciones de configuración admitidas en spring-cloud-azure-starter-integration-servicebus
, el prefijo permanece como spring.cloud.azure.servicebus
.
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-starter-servicebus
a spring-cloud-azure-starter-integration-servicebus
:
Propiedades heredadas | Propiedades modernas |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
tipo spring.cloud.azure.servicebus.transport-type | tipo 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-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries o spring.cloud.azure.servicebus.retry.fixed.max-retries, debe configurarse en función de spring.cloud.azure.servicebus.retry.mode=fixed o exponencial. |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay o spring.cloud.azure.servicebus.retry.fixed.delay, debe configurarse en función de spring.cloud.azure.servicebus.retry.mode=fixed o exponencial. |
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 |
Cambios de API
- Quite
ServiceBusQueueOperation
yServiceBusTopicOperation
con la función de suscripción movida a la claseServiceBusMessageListenerContainer
y la función de envío se movió aServiceBusTemplate
. - Quite
ServiceBusQueueInboundChannelAdapter
yServiceBusTopicInboundChannelAdapter
, y mueva la funcionalidad para escuchar una entidad de cola o tema de Service Bus a ServiceBusInboundChannelAdapter. - Cambie el constructor de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
yServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Cambie el constructor de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
yServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Quite las API
ServiceBusQueueOperation#setCheckpointConfig
yServiceBusTopicOperation#setCheckpointConfig
. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al métodoServiceBusContainerProperties#setAutoComplete
en su lugar. Para deshabilitar el modo de autocompletar es equivalente alMANUAL
modo de punto de control y habilitarlo desencadenará elRECORD
modo. - Quite las API
ServiceBusQueueOperatio#setClientConfig
yServiceBusTopicOperation#setClientConfig
. Para configurar el subyacenteServiceBusProcessorClient
usado por el adaptador de canal de entrada, los usuarios pueden usarServiceBusContainerProperties
en su lugar. - Quite
CompletableFuture
la compatibilidad enServiceBusTemplate
yDefaultMessageHandler
,Reactor
en su lugar. - Agregue una nueva API de para especificar el tipo de
ServiceBusTemplate#setDefaultEntityType
entidad, que es necesario cuando no se proporciona ningún bean paraPropertiesSupplier<String, ProducerProperties>
.ProducerProperties#entityType
- Quite el encabezado
AzureHeaders.RAW_ID
del mensaje . En su lugar, useServiceBusMessageHeaders.MESSAGE_ID
.
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-starter-servicebus
a spring-cloud-azure-starter-integration-servicebus
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter | com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
com.azure.spring.integration.core.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
Fragmento de código de ejemplo
ServiceBusInboundChannelAdapter
código de ejemplo:Código heredado de mediante
ServiceBusQueueInboundChannelAdapter
oServiceBusTopicInboundChannelAdapter
: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; } }
Código moderno:
public class Demo { @Bean("queue-listener-container") public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) { ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties(); containerProperties.setEntityName("QUEUE_NAME"); containerProperties.setAutoComplete(false); return new ServiceBusMessageListenerContainer(processorFactory, containerProperties); } @Bean public ServiceBusInboundChannelAdapter queueMessageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, @Qualifier("queue-listener-container") ServiceBusMessageListenerContainer listenerContainer) { ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } @Bean("topic-listener-container") public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) { ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties(); containerProperties.setEntityName("TOPIC_NAME"); containerProperties.setSubscriptionName("SUBSCRIPTION_NAME"); containerProperties.setAutoComplete(false); return new ServiceBusMessageListenerContainer(processorFactory, containerProperties); } @Bean public ServiceBusInboundChannelAdapter topicMessageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, @Qualifier("topic-listener-container") ServiceBusMessageListenerContainer listenerContainer) { ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } }
DefaultMessageHandler
código de ejemplo:Código heredado, tomando la cola como ejemplo:
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; } }
Código moderno:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME") public MessageHandler queueMessageSender(ServiceBusTemplate serviceBusTemplate) { serviceBusTemplate.setDefaultEntityType(ServiceBusEntityType.QUEUE); DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", serviceBusTemplate); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully for {}.", "QUEUE_NAME"); } @Override public void onFailure(Throwable ex) { LOGGER.info("There was an error sending the message."); } }); return handler; } }
Desde azure-spring-integration-servicebus a spring-integration-azure-servicebus
Esta guía está pensada para ayudar en la migración a spring-integration-azure-servicebus de la versión 2 de azure-spring-integration-servicebus.
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
Cambios de API
- Quite
ServiceBusQueueOperation
yServiceBusTopicOperation
con la función de suscripción movida a la claseServiceBusMessageListenerContainer
y la función de envío se movió aServiceBusTemplate
. - Quite
ServiceBusQueueInboundChannelAdapter
yServiceBusTopicInboundChannelAdapter
, y mueva la funcionalidad para escuchar una entidad de cola o tema de Service Bus a ServiceBusInboundChannelAdapter. - Cambie el constructor de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
yServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Cambie el constructor de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)
aServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)
yServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode)
. - Quite las API
ServiceBusQueueOperation#setCheckpointConfig
yServiceBusTopicOperation#setCheckpointConfig
. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al métodoServiceBusContainerProperties#setAutoComplete
en su lugar. Para deshabilitar el modo de autocompletar es equivalente alMANUAL
modo de punto de control y habilitarlo desencadenará elRECORD
modo. - Quite las API
ServiceBusQueueOperation#setClientConfig
yServiceBusTopicOperation#setClientConfig
. Para configurar el subyacenteServiceBusProcessorClient
usado por el adaptador de canal de entrada, los usuarios pueden usarServiceBusContainerProperties
en su lugar. - Quite
CompletableFuture
la compatibilidad enServiceBusTemplate
yDefaultMessageHandler
,Reactor
en su lugar. - Agregue una nueva API de para especificar el tipo de
ServiceBusTemplate#setDefaultEntityType
entidad, que es necesario cuando no se proporciona ningún bean paraPropertiesSupplier<String, ProducerProperties>
.ProducerProperties#entityType
- Quite el encabezado
AzureHeaders.RAW_ID
del mensaje . En su lugar, useServiceBusMessageHeaders.MESSAGE_ID
.
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-integration-servicebus
a spring-integration-azure-servicebus
:
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter | com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
com.azure.spring.integration.core.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
Desde azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-integration-storage-queue de la versión 2 de azure-spring-cloud-starter-storage-queue.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Todos los nombres de propiedad de configuración cambiaron el prefijo de spring.cloud.azure.storage
a spring.cloud.azure.storage.queue
.
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-starter-storage-queue
a spring-cloud-azure-starter-integration-storage-queue
:
Propiedades heredadas | Propiedades modernas |
---|---|
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 |
Cambios de API
- Coloque
StorageQueueOperation
y proporcioneStorageQueueTemplate
en su lugar. - Quitar
checkpoint-mode
la configuración enStorageQueueTemplate
, solo admite elMANUAL
modo .
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-starter-storage-queue
a spring-cloud-azure-starter-integration-storage-queue
.
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
Desde azure-spring-integration-storage-queue a spring-integration-azure-storage-queue
Esta guía está pensada para ayudar en la migración a spring-integration-azure-storage-queue de la versión 2 de azure-spring-integration-storage-queue.
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
Cambios de API
- Coloque
StorageQueueOperation
y proporcioneStorageQueueTemplate
en su lugar. - Quitar
checkpoint-mode
la configuración enStorageQueueTemplate
, solo admite elMANUAL
modo .
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-integration-storage-queue
a spring-integration-azure-storage-queue
.
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
Desde azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-stream-binder-eventhubs de la versión 2 de azure-spring-cloud-stream-binder-eventhubs.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Importante
Se ha cambiado el prefijo de configuración de spring.cloud.azure.eventhub
a spring.cloud.azure.eventhubs.
Importante
Se cambia el nombre del tipo de enlazador de: eventhub
a eventhubs
.
Para ver los cambios en las entradas secundarias para el siguiente prefijo, consulte la tabla siguiente.
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-stream-binder-eventhubs
a spring-cloud-azure-stream-binder-eventhubs
:
Propiedades heredadas | Propiedades modernas |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.eventhubs.resource.resource-group |
espacio de nombres spring.cloud.azure.eventhub.namespace | spring.cloud.azure.eventhubs.namespace |
spring.cloud.azure.eventhub.connection-string | spring.cloud.azure.eventhubs.connection-string |
spring.cloud.azure.eventhub.checkpoint-storage-account | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name |
spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval |
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Nota:
El tipo de valor de la start-position
configuración también se cambia de una enumeración de com.azure.spring.integration.core.api.StartPosition
a una map
de StartPositionProperties
para cada partición. Por lo tanto, la clave es el identificador de partición y el valor es de com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties
, que incluye propiedades de desplazamiento, número de secuencia, fecha y hora de fecha puesta en cola y si son inclusivos.
Ejemplos de migración de configuración
Para usar el cadena de conexión para la autenticación y migrar las propiedades mencionadas anteriormente, se enumeran los cambios de configuración siguientes:
Configuración heredada:
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
Configuración moderna:
spring:
cloud:
azure:
eventhubs:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
processor:
checkpoint-store:
container-name: ${AZURE_STORAGE_CONTAINER_NAME}
account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
stream:
eventhubs:
bindings:
<binding-name>:
consumer:
batch:
max-size: ${AZURE_MAX_BATCH_SIZE}
max-wait-time: ${AZURE_MAX_WAIT_TIME}
checkpoint:
mode: ${AZURE_CHECKPOINT_MODE}
count: ${AZURE_CHECKPOINT_COUNT}
interval: ${AZURE_CHECKPOINT_INTERVAL}
initial-partition-event-position:
0:
offset: earliest
1:
sequence-number: 100
2:
enqueued-date-time: 2022-01-12T13:32:47.650005Z
4:
inclusive: false
Si usa entidades de seguridad en lugar de cadena de conexión, en las versiones anteriores a la 4.0, la aplicación se conectará primero a Azure Resource Manager (ARM) con la entidad de seguridad proporcionada y, a continuación, recuperará la cadena de conexión del espacio de nombres especificado con ARM. Al final, la aplicación usa el cadena de conexión recuperado para conectarse a Azure Event Hubs. De este modo, se debe conceder a la entidad de seguridad proporcionada el rol Colaborador para recuperar el espacio de nombres de Azure Event Hubs asociado.
Para Azure Spring Apps 4.0, proporcionamos dos maneras de aprovechar las entidades de seguridad para la autenticación. Uno sigue usando las entidades de seguridad para conectarse a ARM y recuperar los cadena de conexión donde el Contributor
rol es necesario para las entidades de seguridad. El otro aprovecha las entidades de seguridad para autenticarse en el identificador de Microsoft Entra y, a continuación, conectarse directamente a Azure Event Hubs. En este caso, el Contributor
rol ya no es necesario, mientras que otros Data
roles relacionados son necesarios para las operaciones de mensajería. Para asegurarse de que a la entidad de seguridad se le ha concedido el permiso suficiente para acceder al recurso de Azure, consulte Autorización del acceso con el identificador de Entra de Microsoft.
Para la autenticación basada en ARM, tomando la entidad de servicio como ejemplo, la migración de configuración se muestra a continuación, donde el rol asignado no debe cambiar:
Configuración heredada:
spring:
cloud:
azure:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
tenant-id: <tenant>
resource-group: ${EVENTHUB_RESOURCE_GROUP}
eventhub:
namespace: ${EVENTHUB_NAMESPACE}
Nota:
Los valores permitidos para tenant-id
son: common
, organizations
, consumers
o el identificador de inquilino. Para obtener más información sobre estos valores, consulte la sección Uso del punto de conexión incorrecto (cuentas personales y de organización) de Error AADSTS50020: la cuenta de usuario del proveedor de identidades no existe en el inquilino. Para obtener información sobre la conversión de la aplicación de un solo inquilino, consulte Conversión de una aplicación de inquilino único en varios inquilinos en microsoft Entra ID.
Se requieren las propiedades de configuración moderna para el identificador de suscripción de Azure y el grupo de recursos:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
eventhubs:
namespace: ${EVENTHUB_NAMESPACE}
resource:
resource-group: ${RESOURCE_GROUP}
Nota:
Los valores permitidos para tenant-id
son: common
, organizations
, consumers
o el identificador de inquilino. Para obtener más información sobre estos valores, consulte la sección Uso del punto de conexión incorrecto (cuentas personales y de organización) de Error AADSTS50020: la cuenta de usuario del proveedor de identidades no existe en el inquilino. Para obtener información sobre la conversión de la aplicación de un solo inquilino, consulte Conversión de una aplicación de inquilino único en varios inquilinos en microsoft Entra ID.
También puede migrar para autenticar y autorizar con el identificador de Entra de Microsoft directamente sin realizar un desvío a ARM. Asegúrese de conceder a la entidad de seguridad los roles necesarios Data
para las operaciones de mensajería. Los ejemplos de configuración de la entidad de servicio y la identidad administrada se enumeran a continuación:
Con una entidad de servicio
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Nota:
Los valores permitidos para tenant-id
son: common
, organizations
, consumers
o el identificador de inquilino. Para obtener más información sobre estos valores, consulte la sección Uso del punto de conexión incorrecto (cuentas personales y de organización) de Error AADSTS50020: la cuenta de usuario del proveedor de identidades no existe en el inquilino. Para obtener información sobre la conversión de la aplicación de un solo inquilino, consulte Conversión de una aplicación de inquilino único en varios inquilinos en microsoft Entra ID.
Con una identidad administrada
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}
Cambios de API
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-stream-binder-eventhubs
a spring-cloud-azure-stream-binder-eventhubs
.
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
Desde azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus
Esta guía está pensada para ayudar en la migración a spring-cloud-azure-stream-binder-servicebus de la versión 2 de azure-spring-cloud-stream-binder-servicebus-queue o azure-spring-cloud-stream-binder-servicebus-topic.
Para obtener información general, use los vínculos siguientes:
- Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y ventajas de migración .
- Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura .
- Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
- Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
- Para obtener información sobre cómo aprovechar
spring-boot-properties-migrator
durante la migración, consulte la sección Configuración de cada SDK . - Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales.
Cambios en la configuración del SDK
Importante
Las bibliotecas del enlazador heredado son azure-spring-cloud-stream-binder-servicebus-queue
y azure-spring-cloud-stream-binder-servicebus-topic
, y ahora se combinan en una spring-cloud-azure-stream-binder-servicebus
.
Importante
El tipo de enlazador se combina de servicebus-queue
y servicebus-topic
como servicebus
.
En la tabla siguiente se enumeran las nuevas propiedades de configuración de spring-cloud-azure-stream-binder-servicebus
:
Propiedades modernas | Descripción |
---|---|
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type | Si usa la función de envío, debe establecer el tipo de entidad, que puede establecer en tema o cola. |
En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-stream-binder-servicebus-*
a spring-cloud-azure-stream-binder-servicebus
:
Propiedades heredadas | Propiedades modernas |
---|---|
spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
tipo spring.cloud.azure.servicebus.transport-type | tipo 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-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries o spring.cloud.azure.servicebus.retry.fixed.max-retries, debe configurarse en función de spring.cloud.azure.servicebus.retry.mode=fixed o exponencial. |
spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay o spring.cloud.azure.servicebus.retry.fixed.delay, debe configurarse en función de spring.cloud.azure.servicebus.retry.mode=fixed o exponencial. |
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.Concurrencia | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.modo punto de comprobación | spring.cloud.stream.servicebus.bindings.binding-name.consumer.autocompletar |
spring.cloud.stream.servicebus.topic.bindings.* | spring.cloud.stream.servicebus.bindings.* |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Concurrencia | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.modo punto de comprobación | spring.cloud.stream.servicebus.bindings.binding-name.consumer.autocompletar |
Nota:
La propiedad de simultaneidad se reemplazará por maxConcurrentSessions cuando sessionsEnabled es true
y maxConcurrentCalls cuando sessionsEnabled es false
.
Nota:
Habilitar autocompletar es igual al RECORD
modo de punto de control y, al contrario, el MANUAL
modo.
Ejemplos de migración de configuración
Configuración heredada, tomando cola como ejemplo:
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
Configuración moderna:
spring:
cloud:
azure:
servicebus:
connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
stream:
function:
definition: consume;supply
bindings:
consume-in-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
supply-out-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
servicebus:
bindings:
consume-in-0:
consumer:
auto-complete: false
supply-out-0:
producer:
entity-type: queue #set as topic if needed
Si usa entidades de seguridad en lugar de cadena de conexión, en las versiones anteriores a la 4.0, la aplicación se conectará primero a Azure Resource Manager (ARM) con la entidad de seguridad proporcionada y, a continuación, recuperará la cadena de conexión del espacio de nombres especificado con ARM. Al final, la aplicación usa el cadena de conexión recuperado para conectarse a Azure Service Bus. De este modo, se debe conceder a la entidad de seguridad proporcionada el rol Colaborador para recuperar el espacio de nombres de Azure Service Bus asociado.
Para Azure Spring Apps 4.0, proporcionamos dos maneras de aprovechar las entidades de seguridad para la autenticación. Uno sigue usando las entidades de seguridad para conectarse a ARM y recuperar los cadena de conexión donde el Contributor
rol es necesario para las entidades de seguridad. El otro aprovecha las entidades de seguridad para autenticarse en microsoft Entra ID y, a continuación, conectarse directamente a Azure Service Bus. En este caso, el Contributor
rol ya no es necesario, mientras que otros Data
roles relacionados son necesarios para las operaciones de mensajería. Para asegurarse de que a la entidad de seguridad se le ha concedido el permiso suficiente para acceder al recurso de Azure, consulte Autorización del acceso con el identificador de Entra de Microsoft.
Para la autenticación basada en ARM, tomando la entidad de servicio como ejemplo, la migración de configuración se muestra a continuación, donde el rol asignado no debe cambiar:
Configuración heredada:
spring:
cloud:
azure:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
tenant-id: <tenant>
resource-group: ${SERVICEBUS_RESOURCE_GROUP}
servicebus:
namespace: ${SERVICEBUS_NAMESPACE}
Nota:
Los valores permitidos para tenant-id
son: common
, organizations
, consumers
o el identificador de inquilino. Para obtener más información sobre estos valores, consulte la sección Uso del punto de conexión incorrecto (cuentas personales y de organización) de Error AADSTS50020: la cuenta de usuario del proveedor de identidades no existe en el inquilino. Para obtener información sobre la conversión de la aplicación de un solo inquilino, consulte Conversión de una aplicación de inquilino único en varios inquilinos en microsoft Entra ID.
Se requieren las propiedades de configuración moderna para el identificador de suscripción de Azure y el grupo de recursos:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
servicebus:
namespace: ${SERVICEBUS_NAMESPACE}
resource:
resource-group: ${SERVICEBUS_RESOURCE_GROUP}
Nota:
Los valores permitidos para tenant-id
son: common
, organizations
, consumers
o el identificador de inquilino. Para obtener más información sobre estos valores, consulte la sección Uso del punto de conexión incorrecto (cuentas personales y de organización) de Error AADSTS50020: la cuenta de usuario del proveedor de identidades no existe en el inquilino. Para obtener información sobre la conversión de la aplicación de un solo inquilino, consulte Conversión de una aplicación de inquilino único en varios inquilinos en microsoft Entra ID.
También puede migrar para autenticar y autorizar con el identificador de Entra de Microsoft directamente sin realizar un desvío a ARM. Asegúrese de conceder a la entidad de seguridad los roles necesarios Data
para las operaciones de mensajería. Los ejemplos de configuración de la entidad de servicio y la identidad administrada se enumeran a continuación:
Con una entidad de servicio
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Nota:
Los valores permitidos para tenant-id
son: common
, organizations
, consumers
o el identificador de inquilino. Para obtener más información sobre estos valores, consulte la sección Uso del punto de conexión incorrecto (cuentas personales y de organización) de Error AADSTS50020: la cuenta de usuario del proveedor de identidades no existe en el inquilino. Para obtener información sobre la conversión de la aplicación de un solo inquilino, consulte Conversión de una aplicación de inquilino único en varios inquilinos en microsoft Entra ID.
Con una identidad administrada
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}
Cambios de API
- Quite el encabezado
AzureHeaders.RAW_ID
del mensaje . En su lugar, useServiceBusMessageHeaders.MESSAGE_ID
.
En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-stream-binder-eventhubs
a spring-cloud-azure-stream-binder-eventhubs
.
Clase heredada | Clase moderna |
---|---|
com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
com.azure.spring.integration.core.api.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
azure-spring-cloud-messaging
La com.azure.spring:azure-spring-cloud-messaging
biblioteca no está lista para la versión 4.0. La función de las anotaciones del agente de escucha está en rediseño, por lo que las @AzureMessageListener
anotaciones , @AzureMessageListeners
y @EnableAzureMessaging
no se admiten actualmente.