Partilhar via


Guia de migração para o Spring Cloud Azure 4.0

Este guia ajuda com a migração para o Spring Cloud Azure 4.0 a partir de bibliotecas herdadas do Azure Spring.

Introdução

Chamaremos as bibliotecas cujo ID de grupo e ID de artefato seguem o padrão bibliotecas de modernas e aquelas com de padrão, ou as bibliotecas de herdadas.

Este guia se concentrará em comparações lado a lado para configurações semelhantes entre as bibliotecas modernas e legadas.

A familiaridade com com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-* ou com.azure.spring:azure-spring-integration-* pacote é assumida.

Se você é novo nas bibliotecas do Spring Cloud Azure 4.0, consulte o Guia do desenvolvedor do Spring Cloud Azure em vez deste guia.

Benefícios da migração

Uma pergunta natural a se fazer ao considerar a adoção de uma nova versão ou biblioteca são seus benefícios. À medida que o Azure amadureceu e foi adotado por um grupo mais diversificado de desenvolvedores, nos concentramos em aprender os padrões e práticas para melhor dar suporte à produtividade do desenvolvedor e entender as lacunas que as bibliotecas do Spring Cloud Azure têm.

Houve várias áreas de feedback consistente expressas nas bibliotecas do Spring Cloud Azure. O mais importante é que as bibliotecas para diferentes serviços do Azure não habilitaram o conjunto completo de configurações. Além disso, a inconsistência de nomenclatura de projetos, IDs de artefatos, versões e configurações tornou a curva de aprendizado íngreme.

Para melhorar a experiência de desenvolvimento nas bibliotecas do Spring Cloud Azure, um conjunto de diretrizes de design foi introduzido para garantir que as bibliotecas do Spring Cloud Azure tenham uma sensação natural e idiomática em relação ao ecossistema do Spring. Mais detalhes estão disponíveis no de documentos de design para os interessados.

O Spring Cloud Azure 4.0 fornece a experiência compartilhada entre bibliotecas integrando-se com diferentes projetos Spring, por exemplo, Spring Boot, Spring Integration, Spring Cloud Stream e assim por diante. A experiência partilhada inclui:

  • Uma lista técnica unificada para incluir todas as bibliotecas do Spring Cloud Azure 4.0.
  • Uma convenção de nomenclatura consistente para artefatos.
  • Uma maneira unificada de configurar as configurações de credencial, proxy, nova tentativa, ambiente de nuvem e camada de transporte.
  • Suporte a todos os métodos de autenticação suportados por um Serviço do Azure ou SDK do Serviço do Azure.

Visão geral

Este guia de migração consiste nas seguintes seções:

  • Alterações de nomenclatura para o Spring Cloud Azure 4.0
  • Alterações de artefatos: renomeado / adicionado / excluído
  • Alterações de dependência
  • Alterações de autenticação
  • Propriedades de configuração
  • Alterações de quebra de API
  • Alterações na biblioteca

Alterações de nomenclatura

Nunca houve um nome consistente ou oficial para chamar todas as bibliotecas do Spring Cloud Azure. Alguns deles foram chamados de Azure Spring Boot e alguns deles Spring on Azure. Desde a versão 4.0, começamos a usar o nome do projeto Spring Cloud Azure para representar todas as bibliotecas do Azure Spring.

Lista técnica

Nós costumávamos enviar duas listas técnicas para nossas bibliotecas, a azure-spring-boot-bom e a azure-spring-cloud-dependencies, mas combinamos essas duas listas técnicas em uma lista técnica desde a 4.0, a spring-cloud-azure-dependencies. Adicione uma entrada na seção dependencyManagement do seu projeto para se beneficiar do gerenciamento de dependência.

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

Observação

Se estiver a utilizar o Spring Boot 3.0.x-3.4.x, certifique-se de que define a spring-cloud-azure-dependencies versão como 5.23.0.

Se você estiver usando o Spring Boot 2.x, certifique-se de definir a versão spring-cloud-azure-dependencies como 4.20.0.

Para obter mais informações sobre a versão usada para essa lista técnica, consulte qual versão do Spring Cloud Azure devo usar.

Alterações de artefatos: renomeado / adicionado / excluído

As IDs de grupo são as mesmas para bibliotecas modernas e herdadas do Spring Cloud Azure. Estão todos com.azure.spring. As IDs de artefato para as bibliotecas modernas do Spring Cloud Azure foram alteradas. De acordo com o projeto Spring ao qual pertence, Spring Boot, Spring Integration ou Spring Cloud Stream, o padrão de IDs de artefato pode ser spring-cloud-azure-starter-[service], spring-integration-azure-[service]ou spring-cloud-azure-stream-binder-[service]. Os iniciadores herdados de cada um têm uma ID de artefato seguindo o padrão azure-spring-*. Isso fornece um meio rápido e acessível para ajudar a entender, rapidamente, se você está usando iniciantes modernos ou legados.

No processo de desenvolvimento do Spring Cloud Azure 4.0, renomeamos alguns artefatos para fazê-los seguir as novas convenções de nomenclatura, excluímos alguns artefatos para que a funcionalidade pudesse ser colocada em um artefato mais apropriado e adicionamos alguns novos artefatos para melhor atender a alguns cenários.

A tabela a seguir mostra os mapeamentos entre a ID do artefato herdado e a ID do artefato moderno:

ID do artefato herdado ID de artefato moderno Descrição
azure-spring-boot-starter spring-cloud-azure-starter Este artefato foi excluído com todas as funcionalidades sendo mescladas no novo artefato spring-cloud-azure-starter.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory Renomeado o artefato.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c Renomeado o artefato.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos Renomeado o artefato para adicionar data, indicando o uso do Spring Data Azure Cosmos DB.
azure-spring-boot-starter-keyvault-certificates não aplicável Não incluído nesta versão, mas será suportado na versão posterior.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets Renomeado o artefato.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms Renomeado o artefato.
azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
O artefato herdado contém a funcionalidade de Blob de Armazenamento e Compartilhamento de Arquivos, ele foi emendado em dois artefatos separados na versão 4.0, spring-cloud-azure-starter-storage-blob e spring-cloud-azure-starter-storage-file-share.
azure-spring-boot não aplicável Este artefato foi excluído com todas as funcionalidades sendo mescladas no novo artefato spring-cloud-azure-autoconfigure.
azure-spring-cloud-autoconfigure não aplicável Este artefato foi excluído com todas as funcionalidades sendo mescladas no novo artefato spring-cloud-azure-autoconfigure.
azure-spring-cloud-context não aplicável Esse artefato foi excluído com todas as funcionalidades sendo mescladas nos novos spring-cloud-azure-autoconfigure e spring-cloud-azure-resourcemanager artefatos.
azure-spring-cloud-messaging spring-messaging-azure A anotação do ouvinte de mensagens foi descartada.
azure-spring-cloud-starter-cache não aplicável Este artefato foi excluído, para usar redis, basta adicionar spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Para obter mais informações sobre o uso, consulte de suporte do Spring Cloud Azure Redis.
azure-spring-cloud-starter-eventhubs-kafka não aplicável Este artefato foi excluído, para usar kafka, basta adicionar spring kafka, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Para obter mais informações sobre o uso, consulte de suporte do Spring Cloud Azure Kafka.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Renomeado o artefato para adicionar integration, indicando o uso da Integração do Spring com Hubs de Eventos.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Renomeado o artefato para adicionar integration, indicando o uso da Integração Spring com o Service Bus.
azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue Renomeado o artefato para adicionar integration, indicando o uso da Integração Spring com a Fila de Armazenamento.
azure-spring-cloud-storage não aplicável Este artefato foi excluído com todas as funcionalidades mescladas no novo artefato spring-cloud-azure-autoconfigure.
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs Este artefato foi refatorado usando um novo design, principalmente spring-cloud-azure-stream-binder-eventhubs e spring-cloud-azure-stream-binder-eventhubs-core.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core Renomeado o artefato.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Este artefato foi excluído com todas as funcionalidades serem mescladas no artefato spring-cloud-azure-stream-binder-servicebus.
azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Este artefato foi excluído com todas as funcionalidades serem mescladas no artefato spring-cloud-azure-stream-binder-servicebus.
azure-spring-integration-core spring-integration-azure-core Renomeado o artefato.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Renomeie o artefato.
azure-spring-integration-servicebus spring-integration-azure-servicebus Renomeie o artefato.
azure-spring-integration-storage-queue spring-integration-azure-storage-queue Renomeie o artefato.
não aplicável spring-cloud-azure-atuador O artefato Spring Cloud Azure Actuator recém-adicionado.
não aplicável spring-cloud-azure-atuator-autoconfigure O artefato recém-adicionado Spring Cloud Azure Actuator AutoConfigure, incluindo a configuração automática para atuador.
não aplicável spring-cloud-azure-autoconfigure Artefato recém-adicionado do Spring Cloud Azure AutoConfigure, incluindo toda a configuração automática para clientes SDK, suporte ao Spring Security, suporte ao Spring Data e suporte ao Spring Integration.
não aplicável spring-cloud-azure-core Artefato Spring Cloud Azure Core recém-adicionado, incluindo todas as funcionalidades principais.
não aplicável spring-cloud-azure-resourcemanager Artefato do Gerenciador de Recursos recém-adicionado. É a biblioteca principal que usa o Azure Resource Manager para ler metadados e criar recursos.
não aplicável spring-cloud-azure-service Artefato recém-adicionado do Spring Cloud Azure Service, incluindo abstrações para serviços do Azure.
não aplicável spring-cloud-azure-starter-appconfiguration Iniciante recém-adicionado para usar o cliente do SDK de Configuração de Aplicativo do Azure.
não aplicável primavera-nuvem-azure-starter-cosmos Iniciante recém-adicionado para usar o cliente SDK do Azure Cosmos DB.
não aplicável spring-cloud-azure-starter-eventhubs Iniciante recém-adicionado para usar o cliente SDK dos Hubs de Eventos do Azure.
não aplicável spring-cloud-azure-starter-servicebus Iniciante recém-adicionado para usar o cliente SDK do Azure Service Bus.
não aplicável spring-cloud-azure-starter-storage-blob Iniciante recém-adicionado para usar o cliente SDK de Blob de Armazenamento do Azure.
não aplicável spring-cloud-azure-starter-storage-file-share Iniciante recém-adicionado para usar o cliente do SDK de Compartilhamento de Arquivos de Armazenamento do Azure.
não aplicável spring-cloud-azure-starter-storage-queue Iniciante recém-adicionado para usar o cliente do SDK da Fila de Armazenamento do Azure.
não aplicável spring-cloud-azure-starter-stream-eventhubs Iniciante recém-adicionado para usar o Azure Event Hubs Spring Cloud Stream Binder.
não aplicável spring-cloud-azure-starter-stream-servicebus Iniciante recém-adicionado para usar o Azure Service Bus Spring Cloud Stream Binder
não aplicável spring-cloud-azure-stream-binder-eventhubs-core Artefato principal do Spring Cloud Stream recém-adicionado para Hubs de Eventos do Azure.

Alterações de dependências

Algumas dependências desnecessárias foram incluídas nos artefatos herdados, que removemos nas bibliotecas modernas do Spring Cloud Azure 4.0. Certifique-se de adicionar as dependências removidas manualmente ao seu projeto para evitar falhas.

As bibliotecas que têm alterações de dependência incluem:

  • spring-cloud-azure-starter
  • spring-cloud-azure-starter-active-directory
  • spring-cloud-azure-starter-active-directory-b2c

Alterações de autenticação

O Spring Cloud Azure 4.0 dá suporte a todos os métodos de autenticação suportados por cada SDK de Serviço do Azure. Ele permite que você configure uma credencial de token global, bem como forneça a credencial de token em cada nível de serviço. Mas uma credencial não é necessária para configurar o Spring Cloud Azure 4.0 porque ele pode aplicar a credencial armazenada em um ambiente de desenvolvimento local ou identidade gerenciada nos Serviços do Azure. Apenas certifique-se de que a entidade de segurança recebeu permissão suficiente para acessar os recursos do Azure de destino.

Observação

Ao atribuir funções às entidades de segurança para interagir com os serviços de mensagens do Azure, as funções relacionadas ao Data são necessárias para conduzir operações de mensagens. Para os Hubs de Eventos de Fluxo do Azure Spring Apps / bibliotecas do fichário do Service Bus, Contributor função é necessária quando a função de criação automática de recursos é necessária. Para obter mais informações, consulte funções internas do Azure.

Uma credencial encadeada, o bean DefaultAzureCredential é configurado automaticamente por padrão e será usado por todos os componentes se não forem especificadas mais informações de autenticação. Para obter mais informações, consulte a seção DefaultAzureCredential de biblioteca de cliente do Azure Identity para Java.

Propriedades de configuração

Migração de propriedades

Criamos um arquivo de additional-spring-configuration-metadata.json para facilitar a migração de propriedade ao usar com o spring-boot-properties-migrator. Primeiro, adicione o seguinte migrador de propriedades ao seu aplicativo:

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

Ou, se você estiver usando o Gradle:

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

Se você executar o aplicativo, ele identificará as propriedades que não são mais gerenciadas pelo Spring Cloud Azure. Se houver uma substituição, ela irá remapear temporariamente a propriedade para você com um aviso. Se não houver uma substituição, um relatório de erros fornecerá mais informações. De qualquer forma, a configuração tem de ser atualizada e a dependência removida depois de atualizar a configuração.

Antes de prosseguir, é uma boa ideia usar o recurso de pesquisa do IDE para verificar se você não está usando uma das propriedades migradas em um teste de integração.

Observação

Alteramos muitas propriedades de configuração nesta alteração. Usar o spring-boot-properties-migrator ajudará a suavizar sua migração.

Configurações globais

O spring-cloud-azure-starter moderno permite definir propriedades que se aplicam a todos os SDKs do Azure no namespace spring.cloud.azure. Esse recurso não era suportado no azure-spring-boot-starterherdado. As configurações globais podem ser divididas em cinco categorias, mostradas na tabela a seguir:

Prefixo Descrição
spring.cloud.azure.client Configura os clientes de transporte abaixo de cada SDK do Azure.
spring.cloud.azure.credencial Configura como autenticar com o Microsoft Entra ID.
spring.cloud.azure.profile Configura o ambiente de nuvem do Azure.
spring.cloud.azure.proxy Configura as opções de proxy e aplica-se a todos os clientes do SDK do Azure.
spring.cloud.azure.retry Configura as opções de repetição e aplica-se a todos os clientes do SDK do Azure. As opções de repetição suportaram parte dos SDKs, não há spring.cloud.azure.cosmos.retry.

Para obter uma lista completa de configurações, consulte Propriedades de configuração do Spring Cloud Azure.

Configurar cada SDK

Para obter detalhes sobre as opções de configuração no nível do SDK, use os seguintes links:

Alterações de quebra de API

Para obter detalhes sobre as alterações de quebra de API em cada biblioteca, use os seguintes links:

Alterações na biblioteca

As alterações de quebra em cada biblioteca são introduzidas da seguinte forma.

De azure-spring-boot-starter a spring-cloud-azure-starter

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter a partir da versão 3 doazure-spring-boot-starter .

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações de dependência

Algumas dependências desnecessárias foram incluídas nos artefatos herdados, que removemos nas bibliotecas modernas do Spring Cloud Azure 4.0. Certifique-se de adicionar as dependências removidas manualmente ao seu projeto para evitar falhas não intencionais.

A tabela a seguir mostra as dependências removidas:

Dependências removidas Descrição
org.springframework.boot:spring-boot-starter-validation Inclua o iniciador de validação se quiser usar o Hibernate Validator.

De azure-spring-boot-starter-active-directory para spring-cloud-azure-starter-active-directory

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-active-directory da versão 3 do azure-spring-boot-starter-active-directory.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações de dependência

Algumas dependências desnecessárias no artefato herdado foram removidas desde a moderna biblioteca do Spring Cloud Azure 4.0. Adicione essas dependências removidas ao seu projeto para evitar falhas não intencionais.

A tabela a seguir mostra as dependências removidas:

Dependências removidas Descrição
com.fasterxml.jackson.core:jackson-databind Adicione essa dependência ao seu projeto, se necessário.
io.projectreactor.netty:reactor-netty Adicione essa dependência ao seu projeto, se necessário.
org.springframework.boot:spring-boot-starter-validation Adicione essa dependência ao seu projeto, se necessário.
org.springframework.boot:primavera-boot-starter-webflux Adicione essa dependência ao seu projeto, se necessário.

Alterações na configuração do SDK

Esta seção inclui as alterações sobre as propriedades adicionadas, removidas e alteradas.

  • Os dois pontos seguintes são os principais a prestar atenção:
  1. O prefixo de todos os nomes de propriedades de configuração foi alterado de azure.activedirectory para spring.cloud.azure.active-directory.
  2. Novos spring.cloud.azure.active-directory.enabled de propriedade são adicionados para ativar/desabilitar recursos relacionados ao Microsoft Entra. O valor padrão é false.

A tabela a seguir mostra os mapeamentos de propriedades entre azure-spring-boot-starter-active-directory e spring-cloud-azure-starter-active-directory:

Propriedades legadas Propriedades modernas
azure.activedirectory.app-id-uri spring.cloud.azure.active-directory.app-id-uri
azure.activedirectory.application-type spring.cloud.azure.active-directory.tipo-de-aplicação
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 a tabela seguinte para obter mais informações.
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
  • O tipo de valor das seguintes propriedades é alterado de long para Duration:

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • As seguintes propriedades são removidas:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • São adicionadas as seguintes propriedades:

    • spring.cloud.azure.active-directory.enabled
    • spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
    • spring.cloud.azure.active-directory.grupo-de-usuário.usar-membros-transitivos

Observação

A função de azure.activedirectory.graph-membership-uri foi substituída por 2 propriedades: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint e spring.cloud.azure.active-directory.user-group.use-transitive-members. A primeira propriedade é usada para especificar o nome do host e a segunda um sinalizador para usar o caminho da URL: v1.0/me/memberOf ou v1.0/me/transitiveMemberOf.

Eis alguns exemplos de migração:

  • Exemplo 1. Caso 1

    • Para legado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • Para 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

  • Exemplo 2. Caso 2

    • Para legado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • Para 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

Alterações na API

A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-active-directory para spring-cloud-azure-starter-active-directory:

Classe Legacy Classe 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.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

Esta seção lista as classes removidas do azure-spring-boot-starter-active-directory.

  • Classe herdada removida

    • 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 para spring-cloud-azure-starter-active-directory-b2c

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-active-directory-b2c da versão 3 do azure-spring-boot-starter-active-directory-b2c.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações de dependência

Algumas dependências desnecessárias foram incluídas nos artefatos herdados, que removemos nas bibliotecas modernas do Spring Cloud Azure 4.0. Certifique-se de adicionar as dependências removidas manualmente ao seu projeto para evitar falhas não intencionais.

A tabela a seguir mostra as dependências removidas:

Dependências removidas Descrição
org.springframework.boot:spring-boot-starter-validation Inclua o iniciador de validação se quiser usar o Hibernate Validator.

Alterações na configuração do SDK

Esta seção inclui as alterações sobre as propriedades adicionadas, removidas e alteradas.

  • Os dois pontos seguintes são os principais a prestar atenção:
  1. Todos os nomes de propriedades de configuração alteraram o prefixo de azure.activedirectory.b2c para spring.cloud.azure.active-directory.b2c.
  2. Novos spring.cloud.azure.active-directory.b2c.enabled de propriedade são adicionados para permitir habilitar/desabilitar recursos relacionados ao Azure AD B2C. O valor padrão é false.

A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-active-directory-b2c para spring-cloud-azure-starter-active-directory-b2c:

Propriedades legadas Propriedades 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.Âmbitos> spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.Âmbitos>
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.nome-do-usuário-atributo-nome spring.cloud.azure.active-directory.b2c.user-name-attribute-name
  • Propriedades removidas do azure-spring-boot-starter-active-directory-b2c:

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • O tipo de valor das seguintes propriedades é alterado de long para Duration:

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

Alterações na API

A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-active-directory-b2c para spring-cloud-azure-starter-active-directory-b2c:

Classe Legacy Classe 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 para spring-cloud-azure-starter-data-cosmos

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-data-cosmos a partir da versão 3 do azure-spring-boot-starter-cosmos.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Todos os nomes de propriedades de configuração alteraram o prefixo de azure.cosmos para spring.cloud.azure.cosmos.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-cosmos para spring-cloud-azure-starter-data-cosmos:

Propriedades legadas Propriedades modernas
azure.cosmos.connection-mode spring.cloud.azure.cosmos.connection-mode
azure.cosmosnível .consistency spring.cloud.azure.cosmos.nível de consistência
azure.cosmos.database spring.cloud.azure.cosmos.database
azure.cosmos.key .key spring.cloud.azure.cosmos
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 para spring-cloud-azure-starter-keyvault-secrets

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-keyvault-secrets da versão 3 do azure-spring-boot-starter-keyvault-secrets.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Esta seção inclui as alterações sobre as propriedades adicionadas, removidas e alteradas.

A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-keyvault-secrets para spring-cloud-azure-starter-keyvault-secrets:

Propriedades legadas Propriedades modernas
azure.keyvault.minúsculas-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].sensível a maiúsculas e 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 e spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order Não há mais suporte. Em vez disso, use a ordem em property-source[n].
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
  • Propriedades removidas de spring-cloud-azure-starter-keyvault-secrets

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

Os seguintes pontos você deve prestar atenção:

  1. Todos os nomes de propriedades de configuração alteraram o prefixo de azure.keyvault para spring.cloud.azure.keyvault.secret.
  2. spring.cloud.azure.keyvault.secret.enabled é usado para habilitar todos os recursos do Key Vault Secret, incluir configurar beans de cliente secreto do Key Vault (como SecretClient e SecretAsyncClient) e adicionar KeyVaultPropertySource em ConfigurableEnvironment.
  3. spring.cloud.azure.keyvault.secret.property-source-enabled é usado para habilitar todos os KeyVaultPropertySource. Só entrará em vigor quando spring.cloud.azure.keyvault.secret.enabled=true.
  4. Para propriedades comuns do Azure (como client, proxy, retry, credential, profile) e propriedades do Cofre da Chave (como endpoint, service-version). Se spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME não estiver configurado, spring.cloud.azure.keyvault.secret.PROPERTY_NAME será usado.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource é específico de um recurso exclusivo do Azure, portanto, se não estiver configurado, não obterá valor de outros locais.

De azure-spring-boot-starter-servicebus-jms para spring-cloud-azure-starter-servicebus-jms

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-servicebus-jms da versão 3 do azure-spring-boot-starter-servicebus-jms.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

O tipo de configuração para spring.jms.servicebus.idle-timeout alterado de long(milissegundos) para Duration padrão para legibilidade.

De azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-storage-blob da versão 3 do azure-spring-boot-starter-storage.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Todos os nomes de propriedades de configuração alteraram o prefixo de azure.storage para spring.cloud.azure.storage.blob.

A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob:

Propriedades legadas Propriedades modernas
azure.storage.nome-da-conta spring.cloud.azure.storage.blob.nome-da-conta
azure.storage.account-key spring.cloud.azure.storage.blob.account-key
azure.storage.blob-endpoint spring.cloud.azure.storage.blob.endpoint

Alterações na API

A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob:

Classe Legacy Classe 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

De azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-file-share

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-storage-file-share da versão 3 do azure-spring-boot-starter-storage.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Todos os nomes de propriedades de configuração alteraram o prefixo de azure.storage para spring.cloud.azure.storage.fileshare.

A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-file-share:

Propriedades legadas Propriedades modernas
azure.storage.nome-da-conta spring.cloud.azure.storage.fileshare.nome-da-conta
azure.storage.account-key spring.cloud.azure.storage.fileshare.account-key
azure.storage.file-endpoint spring.cloud.azure.storage.fileshare.endpoint

Alterações na API

A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-file-share:

Classe Legacy Classe 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

De azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-integration-eventhubs partir da versão 2 do azure-spring-cloud-starter-eventhubs.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Importante

O prefixo de configuração foi alterado de spring.cloud.azure.eventhub para spring.cloud.azure.eventhubs.

Para alterações nas entradas filho para esse prefixo, consulte as tabelas a seguir:

A tabela a seguir mostra mapeamentos de propriedades de azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs:

Propriedades legadas Propriedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.nome-da-conta
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 exemplo, altere 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}

Para:

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}

Observação

A Microsoft recomenda o uso do fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento, como para bancos de dados, caches, mensagens ou serviços de IA, requer um grau muito alto de confiança no aplicativo e traz riscos não presentes em outros fluxos. Use esse fluxo somente quando opções mais seguras, como identidades gerenciadas para conexões sem senha ou sem chave, não forem viáveis. Para operações de máquina local, prefira identidades de usuário para conexões sem senha ou sem chave.

Alterações na API

  • Para obter as alterações nas anotações do ouvinte, consulte o guia de migração da biblioteca de<<>>migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging.
  • Solte EventHubOperation com a função de assinatura movida para a classe EventHubsMessageListenerContainer e a função de envio movida para EventHubsTemplate.
  • Renomeie EventHubInboundChannelAdapter como EventHubsInboundChannelAdapter para manter a consistência com o serviço dos Hubs de Eventos do Azure.
  • Altere o construtor de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) para EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) e EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Altere CheckpointConfig estilo de instanciação para o construtor simples em vez de estilo de compilação.
  • Solte a API EventHubOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o método EventHubsContainerProperties#setCheckpointConfig.
  • Solte a API EventHubOperation#setBatchConsumerConfig. Para definir a configuração de consumo em lote para o adaptador de canal de entrada, os usuários podem chamar os dois métodos EventHubsContainerProperties#getBatch#setMaxSize e EventHubsContainerProperties#getBatch#setMaxWaitTime enquanto isso.
  • Para o modo de consumo em lote, altere os nomes dos cabeçalhos das mensagens convertidas de mensagens em lote.
    • Altere o cabeçalho da mensagem de azure_eventhub_enqueued_time para azure_eventhubs_batch_converted_enqueued_time.
    • Altere o cabeçalho da mensagem de azure_eventhub_offset para azure_eventhubs_batch_converted_offset.
    • Altere o cabeçalho da mensagem de azure_eventhub_sequence_number para azure_eventhubs_batch_converted_sequence_number.
    • Altere o cabeçalho da mensagem de azure_partition_key para azure_batch_converted_partition_key.
  • Ao publicar mensagens em Hubs de Eventos, ignore todos os cabeçalhos de mensagens convertidos de mensagens em lote. Os cabeçalhos incluem:
    • 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
  • O modo de ponto de verificação BATCH só funciona no modo de consumo em lote agora, que pode ser habilitado passando ListenerMode.BATCH para o construtor EventHubsInboundChannelAdapter.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs:

Classe Legacy Classe 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.reator.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reator.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

Exemplo de trecho de código

  • EventHubsInboundChannelAdapter código de exemplo:

    Código legado:

    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 exemplo:

    Código legado:

    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;
        }
    }
    

De azure-spring-integration-eventhubs a spring-integration-azure-eventhubs

Este guia destina-se a ajudar na migração para spring-integration-azure-eventhubs da versão 2 do azure-spring-integration-eventhubs.

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.

Alterações na API

  • Solte EventHubOperation com a função de assinatura movida para a classe EventHubsMessageListenerContainer e a função de envio movida para EventHubsTemplate.
  • Renomeie EventHubInboundChannelAdapter como EventHubsInboundChannelAdapter para manter a consistência com o serviço dos Hubs de Eventos do Azure.
  • Altere o construtor de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) para EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) e EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Altere CheckpointConfig estilo de instanciação para o construtor simples em vez de estilo de compilação.
  • Solte a API EventHubOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o método EventHubsContainerProperties#setCheckpointConfig.
  • Solte a API EventHubOperation#setBatchConsumerConfig. Para definir a configuração de consumo em lote para o adaptador de canal de entrada, os usuários podem chamar os dois métodos EventHubsContainerProperties#getBatch#setMaxSize e EventHubsContainerProperties#getBatch#setMaxWaitTime enquanto isso.
  • Para o modo de consumo em lote, altere os nomes dos cabeçalhos das mensagens convertidas de mensagens em lote.
    • Altere o cabeçalho da mensagem de azure_eventhub_enqueued_time para azure_eventhubs_batch_converted_enqueued_time.
    • Altere o cabeçalho da mensagem de azure_eventhub_offset para azure_eventhubs_batch_converted_offset.
    • Altere o cabeçalho da mensagem de azure_eventhub_sequence_number para azure_eventhubs_batch_converted_sequence_number.
    • Altere o cabeçalho da mensagem de azure_partition_key para azure_batch_converted_partition_key.
  • Ao publicar mensagens em Hubs de Eventos, ignore todos os cabeçalhos de mensagens convertidos de mensagens em lote. Os cabeçalhos incluem:
    • 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
  • O modo de ponto de verificação BATCH só funciona no modo de consumo em lote agora, que pode ser habilitado passando ListenerMode.BATCH para o construtor EventHubsInboundChannelAdapter.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-eventhubs para spring-integration-azure-eventhubs:

Classe Legacy Classe 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.reator.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reator.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

De azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-integration-servicebus da versão 2 do azure-spring-cloud-starter-servicebus.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Para todas as opções de configuração suportadas no spring-cloud-azure-starter-integration-servicebus, o prefixo permanece como spring.cloud.azure.servicebus.

A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus:

Propriedades legadas Propriedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebustipo .client.transport
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 ou spring.cloud.azure.servicebus.retry.fixed.max-retries, deve ser configurado dependendo spring.cloud.azure.servicebus.retry.mode= fixo ou exponencial
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, deve ser configurado dependendo de spring.cloud.azure.servicebus.retry.mode= fixo ou 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

Alterações na API

  • Solte ServiceBusQueueOperation e ServiceBusTopicOperation com a função de assinatura movida para a classe ServiceBusMessageListenerContainer e a função de envio movida para ServiceBusTemplate.
  • Solte ServiceBusQueueInboundChannelAdapter e ServiceBusTopicInboundChannelAdaptere mova a funcionalidade para ouvir uma entidade de fila/tópico do Service Bus para ServiceBusInboundChannelAdapter.
  • Altere o construtor de ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) para ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) e ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Altere o construtor de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) para ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) e ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Solte APIs ServiceBusQueueOperation#setCheckpointConfig e ServiceBusTopicOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o método ServiceBusContainerProperties#setAutoComplete em vez disso. Para desativar o modo de preenchimento automático é equivalente a MANUAL modo de ponto de verificação e para ativá-lo irá acionar o modo RECORD.
  • Solte APIs ServiceBusQueueOperatio#setClientConfig e ServiceBusTopicOperation#setClientConfig. Para configurar o ServiceBusProcessorClient subjacente usado pelo adaptador de canal de entrada, os usuários podem usáServiceBusContainerProperties em vez disso.
  • Solte CompletableFuture suporte em ServiceBusTemplate e DefaultMessageHandler, suporte Reactor em vez disso.
  • Adicione uma nova API de ServiceBusTemplate#setDefaultEntityType para especificar o tipo de entidade, que é necessário quando nenhum bean de PropertiesSupplier&lt;String, ProducerProperties&gt; é fornecido para o ProducerProperties#entityType.
  • Solte o cabeçalho da mensagem AzureHeaders.RAW_ID. Use ServiceBusMessageHeaders.MESSAGE_ID em vez disso.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus:

Classe Legacy Classe 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

Exemplo de trecho de código

  • ServiceBusInboundChannelAdapter código de exemplo:

    Código herdado do uso de ServiceBusQueueInboundChannelAdapter ou ServiceBusTopicInboundChannelAdapter:

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

    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 exemplo:

    Código herdado, tomando a fila como exemplo:

    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;
        }
    }
    

De azure-spring-integration-servicebus para spring-integration-azure-servicebus

Este guia destina-se a ajudar na migração para spring-integration-azure-servicebus da versão 2 do azure-spring-integration-servicebus.

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.

Alterações na API

  • Solte ServiceBusQueueOperation e ServiceBusTopicOperation com a função de assinatura movida para a classe ServiceBusMessageListenerContainer e a função de envio movida para ServiceBusTemplate.
  • Solte ServiceBusQueueInboundChannelAdapter e ServiceBusTopicInboundChannelAdaptere mova a funcionalidade para ouvir uma entidade de fila/tópico do Service Bus para ServiceBusInboundChannelAdapter.
  • Altere o construtor de ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) para ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) e ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Altere o construtor de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) para ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) e ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Solte APIs ServiceBusQueueOperation#setCheckpointConfig e ServiceBusTopicOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o método ServiceBusContainerProperties#setAutoComplete em vez disso. Para desativar o modo de preenchimento automático é equivalente a MANUAL modo de ponto de verificação e para ativá-lo irá acionar o modo RECORD.
  • Solte APIs ServiceBusQueueOperation#setClientConfig e ServiceBusTopicOperation#setClientConfig. Para configurar o ServiceBusProcessorClient subjacente usado pelo adaptador de canal de entrada, os usuários podem usáServiceBusContainerProperties em vez disso.
  • Solte CompletableFuture suporte em ServiceBusTemplate e DefaultMessageHandler, suporte Reactor em vez disso.
  • Adicione uma nova API de ServiceBusTemplate#setDefaultEntityType para especificar o tipo de entidade, que é necessário quando nenhum bean de PropertiesSupplier&lt;String, ProducerProperties&gt; é fornecido para o ProducerProperties#entityType.
  • Solte o cabeçalho da mensagem AzureHeaders.RAW_ID. Use ServiceBusMessageHeaders.MESSAGE_ID em vez disso.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-servicebus para spring-integration-azure-servicebus:

Classe Legacy Classe 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

De azure-spring-cloud-starter-storage-queue para spring-cloud-azure-starter-integration-storage-queue

Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-integration-storage-queue da versão 2 do azure-spring-cloud-starter-storage-queue.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Todos os nomes de propriedades de configuração alteraram o prefixo de spring.cloud.azure.storage para spring.cloud.azure.storage.queue.

A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-cloud-starter-storage-queue para spring-cloud-azure-starter-integration-storage-queue:

Propriedades legadas Propriedades modernas
spring.cloud.azure.storage.account spring.cloud.azure.storage.queue.nome-da-conta
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

Alterações na API

  • Solte StorageQueueOperation e forneça StorageQueueTemplate em vez disso.
  • Solte checkpoint-mode configuração no StorageQueueTemplate, suporte apenas o modo MANUAL.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-starter-storage-queue para spring-cloud-azure-starter-integration-storage-queue.

Classe Legacy Classe 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.reator.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.reator.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

De azure-spring-integration-storage-queue para spring-integration-azure-storage-queue

Este guia destina-se a ajudar na migração para spring-integration-azure-storage-queue da versão 2 doazure-spring-integration-storage-queue .

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.

Alterações na API

  • Solte StorageQueueOperation e forneça StorageQueueTemplate em vez disso.
  • Solte checkpoint-mode configuração no StorageQueueTemplate, suporte apenas o modo MANUAL.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-storage-queue para spring-integration-azure-storage-queue.

Classe Legacy Classe 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.reator.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.reator.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

De azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs

Este guia destina-se a ajudar na migração para spring-cloud-azure-stream-binder-eventhubs da versão 2 do azure-spring-cloud-stream-binder-eventhubs.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Importante

O prefixo de configuração foi alterado de spring.cloud.azure.eventhub para spring.cloud.azure.eventhubs.

Importante

O tipo de fichário é renomeado de: eventhub para eventhubs.

Para alterações nas entradas filho para o prefixo a seguir, consulte a tabela a seguir.

A tabela a seguir mostra mapeamentos de propriedades de azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs:

Propriedades legadas Propriedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.nome-da-conta
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-tempo de espera spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-tempo de espera
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

Observação

O tipo de valor da configuração start-position também é alterado de um enum de com.azure.spring.integration.core.api.StartPosition para um map de StartPositionProperties para cada partição. Assim, a chave é o ID da partição, e o valor é de com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties que inclui propriedades de deslocamento, número de sequência, data enfileirada e se inclusive.

Exemplos de migração de configuração

Para usar a cadeia de conexão para autenticação e migrar as propriedades mencionadas acima, as alterações de configuração são listadas da seguinte forma:

Configuração herdada:

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

Configuração 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

Observação

A Microsoft recomenda o uso do fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento, como para bancos de dados, caches, mensagens ou serviços de IA, requer um grau muito alto de confiança no aplicativo e traz riscos não presentes em outros fluxos. Use esse fluxo somente quando opções mais seguras, como identidades gerenciadas para conexões sem senha ou sem chave, não forem viáveis. Para operações de máquina local, prefira identidades de usuário para conexões sem senha ou sem chave.

Se você usar entidades de segurança em vez de cadeias de conexão, em versões anteriores à 4.0, o aplicativo primeiro se conectará ao Azure Resource Manager (ARM) com a entidade de segurança fornecida e, em seguida, recuperará a cadeia de conexão do namespace especificado com ARM. No final, o aplicativo usa a cadeia de conexão recuperada para se conectar aos Hubs de Eventos do Azure. Dessa forma, a entidade de segurança fornecida deve receber a função de de Colaborador para recuperar o namespace associado dos Hubs de Eventos do Azure.

Para o Azure Spring Apps 4.0, fornecemos duas maneiras de aproveitar as entidades de segurança para autenticação. Um ainda está usando os principais para se conectar ao ARM e recuperar as cadeias de conexão onde a função Contributor é necessária para os principais. O outro aproveita as entidades de segurança para autenticar a ID do Microsoft Entra e, em seguida, conectar-se diretamente aos Hubs de Eventos do Azure. Nesse caso, a função Contributor não é mais necessária, enquanto outras funções relacionadas a Data são necessárias para operações de mensagens. Para se certificar de que a entidade de segurança recebeu a permissão suficiente para aceder ao recurso do Azure, consulte Autorizar acesso com o Microsoft Entra ID.

Para autenticação baseada em ARM, tomando a entidade de serviço como exemplo, a migração de configuração é listada da seguinte forma, onde a função atribuída não deve ser alterada:

Configuração herdada:

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}

Observação

Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e de organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe nodo locatário . Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.

A configuração moderna, as propriedades para a ID de assinatura do Azure e o grupo de recursos são necessários:

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}

Observação

Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e de organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe nodo locatário . Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.

Você também pode migrar para autenticar e autorizar com o Microsoft Entra ID diretamente sem fazer um desvio para ARM. Certifique-se de conceder a entidade de segurança necessária Data funções para operações de mensagens. Os exemplos de configuração da entidade de serviço e da identidade gerenciada estão listados da seguinte forma:

  • Com uma entidade de serviço

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

Observação

Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e de organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe nodo locatário . Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.

  • Com uma identidade gerenciada

    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}
    

Alterações na API

A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs.

Classe Legacy Classe moderna
com.azure.spring.integration.core.api.reator.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

De azure-spring-cloud-stream-binder-servicebus-* para spring-cloud-azure-stream-binder-servicebus

Este guia destina-se a ajudar na migração para spring-cloud-azure-stream-binder-servicebus da versão 2 do azure-spring-cloud-stream-binder-servicebus-queue ou azure-spring-cloud-stream-binder-servicebus-topic.

Para obter informações gerais, use os seguintes links:

  • Para obter uma visão geral das alterações na versão 4.0, consulte as seções Introdução e Benefícios da migração.
  • Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção Alterações de nomenclatura.
  • Para saber como usar uma lista técnica para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
  • Para saber como lidar com a autenticação no Spring Cloud Azure 4.0, consulte a seção Alterações de autenticação.
  • Para saber como aproveitar spring-boot-properties-migrator durante a migração, consulte a seção Configurar cada SDK.
  • Para saber mais sobre as alterações de configuração globais e comuns, consulte a seção Configurações globais.

Alterações na configuração do SDK

Importante

As bibliotecas de fichários legados são azure-spring-cloud-stream-binder-servicebus-queue e azure-spring-cloud-stream-binder-servicebus-topic, e agora são fundidas em uma spring-cloud-azure-stream-binder-servicebus.

Importante

O tipo de aglutinante é combinado de servicebus-queue e servicebus-topic como servicebus.

A tabela a seguir lista as novas propriedades de configuração do spring-cloud-azure-stream-binder-servicebus:

Propriedades modernas Descrição
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type Se você usar a função de envio, precisará definir o tipo de entidade, que pode ser definido como tópico ou fila.

A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-cloud-stream-binder-servicebus-* para spring-cloud-azure-stream-binder-servicebus:

Propriedades legadas Propriedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type spring.cloud.azure.servicebustipo .client.transport
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 ou spring.cloud.azure.servicebus.retry.fixed.max-retries, deve ser configurado dependendo spring.cloud.azure.servicebus.retry.mode= fixo ou exponencial
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, deve ser configurado dependendo de spring.cloud.azure.servicebus.retry.mode= fixo ou 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.simultaneidade spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.modo de ponto de verificação spring.cloud.stream.servicebus.bindings.binding-name.consumer. de preenchimento automático
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.simultaneidade spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.modo de ponto de verificação spring.cloud.stream.servicebus.bindings.binding-name.consumer. de preenchimento automático

Observação

A propriedade concurrency será substituída por maxConcurrentSessions quando sessionsEnabled estiver true e maxConcurrentCalls quando sessionsEnabled estiver false.

Observação

Ativar o preenchimento automático é igual a RECORD modo de ponto de verificação e, ao contrário, ao modo MANUAL.

Exemplos de migração de configuração

Configuração herdada, tomando a fila como exemplo:

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

Configuração 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

Observação

A Microsoft recomenda o uso do fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento, como para bancos de dados, caches, mensagens ou serviços de IA, requer um grau muito alto de confiança no aplicativo e traz riscos não presentes em outros fluxos. Use esse fluxo somente quando opções mais seguras, como identidades gerenciadas para conexões sem senha ou sem chave, não forem viáveis. Para operações de máquina local, prefira identidades de usuário para conexões sem senha ou sem chave.

Se você usar entidades de segurança em vez de cadeias de conexão, em versões anteriores à 4.0, o aplicativo primeiro se conectará ao Azure Resource Manager (ARM) com a entidade de segurança fornecida e, em seguida, recuperará a cadeia de conexão do namespace especificado com ARM. No final, o aplicativo usa a cadeia de conexão recuperada para se conectar ao Barramento de Serviço do Azure. Dessa forma, a entidade de segurança fornecida deve ser concedida com a função de de Colaborador para recuperar o namespace associado do Barramento de Serviço do Azure.

Para o Azure Spring Apps 4.0, fornecemos duas maneiras de aproveitar as entidades de segurança para autenticação. Um ainda está usando os principais para se conectar ao ARM e recuperar as cadeias de conexão onde a função Contributor é necessária para os principais. O outro aproveita as entidades de segurança para autenticar a ID do Microsoft Entra e, em seguida, conectar-se diretamente ao Barramento de Serviço do Azure. Nesse caso, a função Contributor não é mais necessária, enquanto outras funções relacionadas a Data são necessárias para operações de mensagens. Para se certificar de que a entidade de segurança recebeu a permissão suficiente para aceder ao recurso do Azure, consulte Autorizar acesso com o Microsoft Entra ID.

Para autenticação baseada em ARM, tomando a entidade de serviço como exemplo, a migração de configuração é listada da seguinte forma, onde a função atribuída não deve ser alterada:

Configuração herdada:

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}

Observação

Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e de organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe nodo locatário . Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.

A configuração moderna, as propriedades para a ID de assinatura do Azure e o grupo de recursos são necessários:

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}

Observação

Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e de organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe nodo locatário . Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.

Você também pode migrar para autenticar e autorizar com o Microsoft Entra ID diretamente sem fazer um desvio para ARM. Certifique-se de conceder a entidade de segurança necessária Data funções para operações de mensagens. Os exemplos de configuração da entidade de serviço e da identidade gerenciada estão listados da seguinte forma:

  • Com uma entidade de serviço

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

Observação

Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado o ponto de extremidade errado (contas pessoais e de organização) de AADSTS50020 de erro - A conta de usuário do provedor de identidade não existe nodo locatário . Para obter informações sobre como converter seu aplicativo de locatário único, consulte Converter aplicativo de locatário único em multilocatário no Microsoft Entra ID.

  • Com uma identidade gerenciada

    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}
    

Alterações na API

  • Solte o cabeçalho da mensagem AzureHeaders.RAW_ID. Use ServiceBusMessageHeaders.MESSAGE_ID em vez disso.

A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs.

Classe Legacy Classe 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

A biblioteca com.azure.spring:azure-spring-cloud-messaging não está pronta para a versão 4.0. A função de anotações de ouvinte está sendo redesenhada, portanto, as anotações @AzureMessageListener, @AzureMessageListenerse @EnableAzureMessaging não são suportadas no momento.