Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia ajuda na migração para o Spring Cloud Azure 4.0 das bibliotecas herdadas do Azure Spring.
Introdução
Chamaremos bibliotecas cuja ID de grupo e ID de artefato seguem o padrão
Este guia se concentrará em comparações lado a lado para configurações semelhantes entre as bibliotecas modernas e herdadas.
Familiaridade com com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-* ou pacote com.azure.spring:azure-spring-integration-* é assumido.
Se você não estiver familiarizado com as bibliotecas do Spring Cloud Azure 4.0, consulte o guia do desenvolvedor do Spring Cloud Azure em vez deste guia.
Benefícios de migração
Uma pergunta natural a ser feita ao considerar se a adoção de uma nova versão ou biblioteca é seus benefícios. À medida que o Azure amadureceu e foi abraçado por um grupo mais diversificado de desenvolvedores, estamos focados em aprender os padrões e práticas para dar melhor suporte à produtividade do desenvolvedor e entender as lacunas que as bibliotecas do Spring Cloud Azure têm.
Havia várias áreas de comentários consistentes expressas nas bibliotecas do Spring Cloud Azure. O mais importante é que as bibliotecas de diferentes serviços do Azure não habilitaram o conjunto completo de configurações. Além disso, a inconsistência de nomenclatura de projeto, IDs de artefato, versões e configurações tornou a curva de aprendizado íngreme.
Para melhorar a experiência de desenvolvimento em 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 spring. Mais detalhes estão disponíveis no documento de design para os interessados.
O Spring Cloud Azure 4.0 fornece a experiência compartilhada entre bibliotecas que integram diferentes projetos do Spring, por exemplo, Spring Boot, Spring Integration, Spring Cloud Stream e assim por diante. A experiência compartilhada inclui:
- Um BOM unificado para incluir todas as bibliotecas do Spring Cloud Azure 4.0.
- Uma convenção de nomenclatura consistente para artefatos.
- Uma maneira unificada de configurar credenciais, proxy, repetição, ambiente de nuvem e configurações de camada de transporte.
- Dá suporte a todos os métodos de autenticação compatíveis com o Serviço do Azure ou o 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 artefato: renomeada/adicionada/excluída
- Alterações de dependência
- Alterações de autenticação
- Propriedades de configuração
- Alterações interruptivas da API
- Alterações na biblioteca
Alterações de nomenclatura
Nunca houve um nome consistente ou oficial para chamar todas as bibliotecas do Azure do Spring Cloud. Alguns deles foram chamados de Azure Spring Boot e alguns deles Spring on Azure. Desde 4.0, começamos a usar o nome do projeto Spring Cloud Azure para representar todas as bibliotecas do Azure Spring.
Lista de materiais
Costumávamos enviar dois BOMs para nossas bibliotecas, o azure-spring-boot-bom e azure-spring-cloud-dependencies, mas combinamos esses dois BOMs em um BOM desde 4.0, o spring-cloud-azure-dependencies. Adicione uma entrada na seção dependencyManagement do projeto para se beneficiar do gerenciamento de dependências.
<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>
Nota
Se você estiver usando o Spring Boot 3.0.x-3.4.x, defina a spring-cloud-azure-dependencies versão como 5.23.0.
Se você estiver usando o Spring Boot 2.x, defina a versão spring-cloud-azure-dependencies como 4.20.0.
Para obter mais informações sobre a versão usada para este BOM, consulte qual versão do Spring Cloud Azure devo usar.
Alterações de artefato: renomeada/adicionada/excluída
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 Azure do Spring Cloud foram alteradas. De acordo com o projeto Spring ao qual pertence, Spring Boot, Spring Integration ou Spring Cloud Stream, o padrão de IDs do artefato pode ser spring-cloud-azure-starter-[service], spring-integration-azure-[service]ou spring-cloud-azure-stream-binder-[service]. Os inícios herdados para cada um deles 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 herdados.
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 atender melhor 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 do artefato moderno | Descrição |
|---|---|---|
| azure-spring-boot-starter | spring-cloud-azure-starter | Este artefato foi excluído com todas as funcionalidades a serem mescladas no novo artefato de 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 está incluído nesta versão, mas terá suporte 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 do Blob de Armazenamento e do Compartilhamento de Arquivos, ele foi agrupado em dois artefatos separados no 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 a serem mescladas no novo artefato de spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-autoconfigure | não aplicável | Este artefato foi excluído com todas as funcionalidades a serem mescladas no novo artefato de spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-context | não aplicável | Esse artefato foi excluído com todas as funcionalidades a serem mescladas nos novos artefatos de spring-cloud-azure-autoconfigure e spring-cloud-azure-resourcemanager. |
| 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, por 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 suporte do Spring Cloud Azure Redis. |
| azure-spring-cloud-starter-eventhubs-kafka | não aplicável | Este artefato foi excluído, por usar kafka, basta adicionar spring kafka, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Para obter mais informações sobre o uso, consulte 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 | Renomeou o artefato para adicionar integration, indicando o uso do Spring Integration com o Barramento de Serviço. |
| azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Renomeado o artefato para adicionar integration, indicando o uso do Spring Integration com a Fila de Armazenamento. |
| azure-spring-cloud-storage | não aplicável | Esse artefato foi excluído com todas as funcionalidades mescladas no novo artefato de 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 a 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 a 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-actuator | O artefato do Azure Actuator do Spring Cloud recém-adicionado. |
| não aplicável | spring-cloud-azure-actuator-autoconfigure | O artefato do Spring Cloud Actuator AutoConfigure recém-adicionado, incluindo a configuração automática para o atuador. |
| não aplicável | spring-cloud-azure-autoconfigure | Artefato do Spring Cloud Azure AutoConfigure recém-adicionado, incluindo toda a configuração automática para clientes do SDK, suporte ao Spring Security, suporte ao Spring Data e suporte ao Spring Integration. |
| não aplicável | spring-cloud-azure-core | Artefato do Azure Core do Spring Cloud recém-adicionado, incluindo todas as funcionalidades principais. |
| não aplicável | spring-cloud-azure-resourcemanager | Artefato do Resource Manager recém-adicionado. É a biblioteca Principal usando o Azure Resource Manager para ler metadados e criar recursos. |
| não aplicável | spring-cloud-azure-service | Artefato do Serviço do Azure do Spring Cloud recém-adicionado, incluindo abstrações para serviços do Azure. |
| não aplicável | spring-cloud-azure-starter-appconfiguration | Início recém-adicionado para usar o cliente do SDK de Configuração de Aplicativo do Azure. |
| não aplicável | spring-cloud-azure-starter-cosmos | Início recém-adicionado para usar o cliente do SDK do Azure Cosmos DB. |
| não aplicável | spring-cloud-azure-starter-eventhubs | Início recém-adicionado para usar o cliente do SDK dos Hubs de Eventos do Azure. |
| não aplicável | spring-cloud-azure-starter-servicebus | Início recém-adicionado para usar o cliente do SDK do Barramento de Serviço do Azure. |
| não aplicável | spring-cloud-azure-starter-storage-blob | Início recém-adicionado para usar o cliente do SDK do Blob de Armazenamento do Azure. |
| não aplicável | spring-cloud-azure-starter-storage-file-share | Início recém-adicionado para usar o cliente do SDK de Compartilhamento de Arquivos do Armazenamento do Azure. |
| não aplicável | spring-cloud-azure-starter-storage-queue | Início 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 | Iniciador recém-adicionado para usar o Spring Cloud Stream Binder dos Hubs de Eventos do Azure. |
| não aplicável | spring-cloud-azure-starter-stream-servicebus | Início recém-adicionado para usar o Spring Cloud Stream Binder do Barramento de Serviço do Azure |
| não aplicável | spring-cloud-azure-stream-binder-eventhubs-core | Artefato de núcleo 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. Adicione as dependências removidas manualmente ao 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 aos quais cada SDK do Serviço do Azure dá suporte. Ele permite configurar uma credencial de token global, bem como fornecer 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 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 de destino do Azure.
Nota
Ao atribuir funções às entidades de segurança para interagir com os serviços de mensagens do Azure, as funções relacionadas Data são necessárias para realizar operações de mensagens. Para bibliotecas do Azure Spring Apps Stream Event Hubs/Service Bus Binder, 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 nenhuma informação de autenticação for especificada. Para obter mais informações, consulte a seção DefaultAzureCredential da biblioteca de clientes Identidade do Azure para Java.
Propriedades de configuração
Migração de propriedades
Criamos um arquivo additional-spring-configuration-metadata.json para suavizar a migração de propriedade ao usar com spring-boot-properties-migrator. Primeiro, adicione o seguinte migrador de propriedade 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, ele 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 precisa ser atualizada e a dependência removida depois que você atualizar a configuração.
Antes de seguir em frente, é uma boa ideia usar o recurso de pesquisa do seu IDE para verificar se você não está usando uma das propriedades que você migrou em um teste de integração.
Nota
Alteramos muitas propriedades de configuração nessa 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. Não havia suporte para esse recurso 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. |
| credencial .azure spring.cloud.azure | Configura como autenticar com a ID do Microsoft Entra. |
| spring.cloud.azure.profile | Configura o ambiente de nuvem do Azure. |
| spring.cloud.azure.proxy | Configura as opções de proxy, aplicam-se a todos os clientes do SDK do Azure. |
| spring.cloud.azure.retry | Configura as opções de repetição, aplicam-se a todos os clientes do SDK do Azure. As opções de repetição têm suporte para 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:
- Do azure-spring-boot-starter-active-directory ao spring-cloud-azure-starter-active-directory
- Do azure-spring-boot-starter-active-directory-b2c ao spring-cloud-azure-starter-active-directory-b2c
- Do azure-spring-boot-starter-cosmos ao spring-cloud-azure-starter-data-cosmos
- Do azure-spring-boot-starter-keyvault-secrets ao spring-cloud-azure-starter-keyvault-secrets
- Do azure-spring-boot-starter-servicebus-jms ao spring-cloud-azure-starter-servicebus-jms
- Do azure-spring-boot-starter-storage ao spring-cloud-azure-starter-storage-blob
- Do azure-spring-boot-starter-storage ao spring-cloud-azure-starter-storage-file-share
- Do azure-spring-cloud-starter-eventhubs ao spring-cloud-azure-starter-integration-eventhubs
- Do azure-spring-cloud-starter-servicebus ao spring-cloud-azure-starter-integration-servicebus
- De azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
- Do azure-spring-cloud-stream-binder-eventhubs ao spring-cloud-azure-stream-binder-eventhubs
- Do azure-spring-cloud-stream-binder-servicebus-* ao spring-cloud-azure-stream-binder-servicebus
Alterações interruptivas da API
Para obter detalhes sobre alterações de falha de API em cada biblioteca, use os seguintes links:
- Do azure-spring-boot-starter-active-directory ao spring-cloud-azure-starter-active-directory
- Do azure-spring-boot-starter-active-directory-b2c ao spring-cloud-azure-starter-active-directory-b2c
- Do azure-spring-boot-starter-storage ao spring-cloud-azure-starter-storage-blob
- Do azure-spring-boot-starter-storage ao spring-cloud-azure-starter-storage-file-share
- Do azure-spring-cloud-starter-eventhubs ao spring-cloud-azure-starter-integration-eventhubs
- Do azure-spring-integration-eventhubs ao spring-integration-azure-eventhubs
- Do azure-spring-cloud-starter-servicebus ao spring-cloud-azure-starter-integration-servicebus
- Do azure-spring-integration-servicebus ao spring-integration-azure-servicebus
- De azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue
- Do azure-spring-integration-storage-queue ao spring-integration-azure-storage-queue
- Do azure-spring-cloud-stream-binder-eventhubs ao spring-cloud-azure-stream-binder-eventhubs
- Do azure-spring-cloud-stream-binder-servicebus-* ao spring-cloud-azure-stream-binder-servicebus
Alterações na biblioteca
Alterações significativas em cada biblioteca são introduzidas da seguinte maneira.
Do azure-spring-boot-starter ao spring-cloud-azure-starter
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter da versão 3 do azure-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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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. Adicione as dependências removidas manualmente ao projeto para evitar falhas não intencionais.
A tabela a seguir mostra as dependências removidas:
| Dependências removidas | Descrição |
|---|---|
| org.springframework.boot:validação de inicialização do spring-booter | Inclua o iniciador de validação se você quiser usar o Validador de Hibernação. |
Do azure-spring-boot-starter-active-directory ao spring-cloud-azure-starter-active-directory
Este guia destina-se a ajudar a 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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:reator-rede | Adicione essa dependência ao seu projeto, se necessário. |
| org.springframework.boot:validação de inicialização do spring-booter | Adicione essa dependência ao seu projeto, se necessário. |
| org.springframework.boot:spring-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 a seguir são os principais para prestar atenção em:
- O prefixo de todos os nomes de propriedade de configuração foi alterado de
azure.activedirectoryparaspring.cloud.azure.active-directory. - Nova propriedade
spring.cloud.azure.active-directory.enabledé adicionada para habilitar/desabilitar recursos relacionados ao Microsoft Entra. O valor padrão éfalse.
A tabela a seguir mostra os mapeamentos de propriedade entre azure-spring-boot-starter-active-directory e spring-cloud-azure-starter-active-directory:
| Propriedades herdadas | Propriedades modernas |
|---|---|
| azure.activedirectory.app-id-uri | spring.cloud.azure.active-directory.app-id-uri |
| azure.activedirectory.application-type | spring.cloud.azure.active-directory.application-type |
| azure.activedirectory.authorization-clients | spring.cloud.azure.active-directory.authorization-clients |
| azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type |
| azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand |
| azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes |
| azure.activedirectory.authenticate-additional-parameters | spring.cloud.azure.active-directory.authenticate-additional-parameters |
| azure.activedirectory.base-uri | spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint |
| azure.activedirectory.client-id | spring.cloud.azure.active-directory.credential.client-id |
| azure.activedirectory.client-secret | spring.cloud.azure.active-directory.credential.client-secret |
| azure.activedirectory.graph-membership-uri | Verifique a tabela a seguir 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
longparaDuration:jwt-connect-timeoutjwt-read-timeoutjwk-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
As seguintes propriedades são adicionadas:
- spring.cloud.azure.active-directory.enabled
- spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
- spring.cloud.azure.active-directory.user-group.use-transitive-members
Nota
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.
Aqui estão alguns exemplos de migração:
Exemplo 1. Caso 1
Para herdado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Para modern: 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 herdado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Para modern: 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 de 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 herdada | 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
Do azure-spring-boot-starter-active-directory-b2c ao 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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. Adicione as dependências removidas manualmente ao projeto para evitar falhas não intencionais.
A tabela a seguir mostra as dependências removidas:
| Dependências removidas | Descrição |
|---|---|
| org.springframework.boot:validação de inicialização do spring-booter | Inclua o iniciador de validação se você quiser usar o Validador de Hibernação. |
Alterações na configuração do SDK
Esta seção inclui as alterações sobre as propriedades adicionadas, removidas e alteradas.
- Os dois pontos a seguir são os principais para prestar atenção em:
- Todos os nomes de propriedades de configuração alteraram o prefixo de
azure.activedirectory.b2cparaspring.cloud.azure.active-directory.b2c. - Nova propriedade
spring.cloud.azure.active-directory.b2c.enabledé adicionada 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 herdadas | 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.tipo> de concessão de autorização | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.tipo> de concessão de autorização |
| azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME.scopes> | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.scopes> |
| azure.activedirectory.b2c.app-id-uri | spring.cloud.azure.active-directory.b2c.app-id-uri |
| azure.activedirectory.b2c.base-uri | spring.cloud.azure.active-directory.b2c.base-uri |
| azure.activedirectory.b2c.client-id | spring.cloud.azure.active-directory.b2c.credential.client-id |
| azure.activedirectory.b2c.client-secret | spring.cloud.azure.active-directory.b2c.credential.client-secret |
| azure.activedirectory.b2c.jwt-connect-timeout | spring.cloud.azure.active-directory.b2c.jwt-connect-timeout |
| azure.activedirectory.b2c.jwt-read-timeout | spring.cloud.azure.active-directory.b2c.jwt-read-timeout |
| azure.activedirectory.b2c.jwt-size-limit | spring.cloud.azure.active-directory.b2c.jwt-size-limit |
| azure.activedirectory.b2c.login-flow | spring.cloud.azure.active-directory.b2c.login-flow |
| azure.activedirectory.b2c.logout-success-url | spring.cloud.azure.active-directory.b2c.logout-success-url |
| azure.activedirectory.b2c.reply-url | spring.cloud.azure.active-directory.b2c.reply-url |
| azure.activedirectory.b2c.tenant-id | spring.cloud.azure.active-directory.b2c.profile.tenant-id |
| azure.activedirectory.b2c.user-flows | spring.cloud.azure.active-directory.b2c.fluxos de usuário |
| azure.activedirectory.b2c.nome-do-atributo-do-usuário | spring.cloud.azure.active-directory.b2c.nome-do-usuário-nome-do-atributo |
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
longparaDuration:- jwt-connect-timeout
- jwt-tempo limite de leitura
Alterações de 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 herdada | 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 |
Do azure-spring-boot-starter-cosmos ao spring-cloud-azure-starter-data-cosmos
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-data-cosmos 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 herdadas | Propriedades modernas |
|---|---|
| azure.cosmos.connection-mode | spring.cloud.azure.cosmos.connection-mode |
| azure.cosmos.consistency-level | 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 |
Do azure-spring-boot-starter-keyvault-secrets ao 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 herdadas | Propriedades modernas |
|---|---|
| azure.keyvault.chaves que diferenciam maiúsculas de minúsculas | 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 na propriedade-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 do spring-cloud-azure-starter-keyvault-secrets
azure.keyvault.allow-telemetry azure.keyvault.order
Os seguintes pontos aos quais você deve prestar atenção:
- Todos os nomes de propriedades de configuração alteraram o prefixo de
azure.keyvaultparaspring.cloud.azure.keyvault.secret. -
spring.cloud.azure.keyvault.secret.enabledé usado para habilitar todos os recursos do Segredo do Key Vault, inclua configurar os clientes secretos do Key Vault (comoSecretClienteSecretAsyncClient) e adicionarKeyVaultPropertySourceemConfigurableEnvironment. -
spring.cloud.azure.keyvault.secret.property-source-enabledé usado para habilitar todos osKeyVaultPropertySource. Ele só entrará em vigor quandospring.cloud.azure.keyvault.secret.enabled=true. - Para propriedades comuns do Azure(como
client,proxy,retry,credential,profile) e propriedades do Key Vault (comoendpoint,service-version). Sespring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAMEnão estiver configurado,spring.cloud.azure.keyvault.secret.PROPERTY_NAMEserá usado. -
spring.cloud.azure.keyvault.secret.property-sources[n].resourceé específico para um recurso exclusivo do Azure; portanto, se ele não estiver configurado, ele não obterá valor de outros locais.
Do azure-spring-boot-starter-servicebus-jms ao 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 de 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 de legibilidade.
Do azure-spring-boot-starter-storage ao 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 herdadas | Propriedades modernas |
|---|---|
| azure.storage.account-name | spring.cloud.azure.storage.blob.account-name |
| azure.storage.account-key | spring.cloud.azure.storage.blob.account-key |
| azure.storage.blob-endpoint | spring.cloud.azure.storage.blob.endpoint |
Alterações de API
A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob:
| Classe herdada | 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 |
Do azure-spring-boot-starter-storage ao 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 herdadas | Propriedades modernas |
|---|---|
| azure.storage.account-name | spring.cloud.azure.storage.fileshare.account-name |
| azure.storage.account-key | spring.cloud.azure.storage.fileshare.account-key |
| azure.storage.file-endpoint | spring.cloud.azure.storage.fileshare.endpoint |
Alterações de 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 herdada | 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 |
Do azure-spring-cloud-starter-eventhubs ao spring-cloud-azure-starter-integration-eventhubs
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-integration-eventhubs da versão 2 de 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 obter alterações nas entradas filho desse prefixo, consulte as seguintes tabelas:
A tabela a seguir mostra mapeamentos de propriedades de azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs:
| Propriedades herdadas | 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.account-name |
| spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
| spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
Por 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}
Nota
A Microsoft recomenda usar o 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 alto grau de confiança no aplicativo e traz riscos que não estã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 computador local, prefira identidades de usuário para conexões sem senha ou sem chave.
Alterações de API
- Para obter as alterações nas anotações do ouvinte, consulte o guia de migração do <<biblioteca de>> migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging.
- Solte
EventHubOperationcom a função de assinatura movida para a classeEventHubsMessageListenerContainere a função de envio movida paraEventHubsTemplate. - Renomeie
EventHubInboundChannelAdaptercomoEventHubsInboundChannelAdapterpara manter-se consistente com o serviço dos Hubs de Eventos do Azure. - Altere o construtor de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)paraEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)eEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Altere
CheckpointConfigestilo de instanciação para o construtor simples em vez de estilo de build. - Remover
EventHubOperation#setCheckpointConfigde API. Para definir a configuração de ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoEventHubsContainerProperties#setCheckpointConfig. - Remover
EventHubOperation#setBatchConsumerConfigde API. Para definir a configuração de consumo em lote para o adaptador de canal de entrada, os usuários podem chamar os dois métodosEventHubsContainerProperties#getBatch#setMaxSizeeEventHubsContainerProperties#getBatch#setMaxWaitTimeenquanto isso. - Para o modo de consumo em lote, altere os nomes de cabeçalho da mensagem convertidos de mensagens em lote.
- Alterar o cabeçalho da mensagem de
azure_eventhub_enqueued_timeparaazure_eventhubs_batch_converted_enqueued_time. - Alterar o cabeçalho da mensagem de
azure_eventhub_offsetparaazure_eventhubs_batch_converted_offset. - Alterar o cabeçalho da mensagem de
azure_eventhub_sequence_numberparaazure_eventhubs_batch_converted_sequence_number. - Alterar o cabeçalho da mensagem de
azure_partition_keyparaazure_batch_converted_partition_key.
- Alterar o cabeçalho da mensagem de
- Ao publicar mensagens nos Hubs de Eventos, ignore todos os cabeçalhos de mensagem 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
BATCHsó funciona no modo de consumo em lote agora, que pode ser habilitado passandoListenerMode.BATCHpara 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 herdada | 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.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Snippet de código de exemplo
EventHubsInboundChannelAdaptercódigo de exemplo:Código herdado:
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; } }DefaultMessageHandlercódigo de exemplo:Código herdado:
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; } }
Do azure-spring-integration-eventhubs ao 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 de Introdução
e de 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 um BOM para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
Alterações de API
- Solte
EventHubOperationcom a função de assinatura movida para a classeEventHubsMessageListenerContainere a função de envio movida paraEventHubsTemplate. - Renomeie
EventHubInboundChannelAdaptercomoEventHubsInboundChannelAdapterpara manter-se consistente com o serviço dos Hubs de Eventos do Azure. - Altere o construtor de
EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String)paraEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer)eEventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode). - Altere
CheckpointConfigestilo de instanciação para o construtor simples em vez de estilo de build. - Remover
EventHubOperation#setCheckpointConfigde API. Para definir a configuração de ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoEventHubsContainerProperties#setCheckpointConfig. - Remover
EventHubOperation#setBatchConsumerConfigde API. Para definir a configuração de consumo em lote para o adaptador de canal de entrada, os usuários podem chamar os dois métodosEventHubsContainerProperties#getBatch#setMaxSizeeEventHubsContainerProperties#getBatch#setMaxWaitTimeenquanto isso. - Para o modo de consumo em lote, altere os nomes de cabeçalho da mensagem convertidos de mensagens em lote.
- Alterar o cabeçalho da mensagem de
azure_eventhub_enqueued_timeparaazure_eventhubs_batch_converted_enqueued_time. - Alterar o cabeçalho da mensagem de
azure_eventhub_offsetparaazure_eventhubs_batch_converted_offset. - Alterar o cabeçalho da mensagem de
azure_eventhub_sequence_numberparaazure_eventhubs_batch_converted_sequence_number. - Alterar o cabeçalho da mensagem de
azure_partition_keyparaazure_batch_converted_partition_key.
- Alterar o cabeçalho da mensagem de
- Ao publicar mensagens nos Hubs de Eventos, ignore todos os cabeçalhos de mensagem 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
BATCHsó funciona no modo de consumo em lote agora, que pode ser habilitado passandoListenerMode.BATCHpara o construtor EventHubsInboundChannelAdapter.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-eventhubs para spring-integration-azure-eventhubs:
| Classe herdada | 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.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Do azure-spring-cloud-starter-servicebus ao 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 de 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de configurações globais
.
Alterações na configuração do SDK
Para todas as opções de configuração com suporte 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 herdadas | Propriedades modernas |
|---|---|
| spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
| spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebus.client.transport-type |
| spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
| spring.cloud.azure.servicebus.retry-options.max-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries ou spring.cloud.azure.servicebus.retry.fixed.max-retries, deve ser configurado dependendo de 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 do 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 de API
- Solte
ServiceBusQueueOperationeServiceBusTopicOperationcom a função de assinatura movida para oServiceBusMessageListenerContainerde classe e a função de envio movida paraServiceBusTemplate. - Solte
ServiceBusQueueInboundChannelAdaptereServiceBusTopicInboundChannelAdaptere mova a funcionalidade para ouvir uma entidade de fila/tópico do Barramento de Serviço para ServiceBusInboundChannelAdapter. - Altere o construtor de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)paraServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Altere o construtor de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)paraServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Remover APIs
ServiceBusQueueOperation#setCheckpointConfigeServiceBusTopicOperation#setCheckpointConfig. Para definir a configuração de ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoServiceBusContainerProperties#setAutoCompleteem vez disso. Desabilitar o modo de preenchimento automático é equivalente aMANUALmodo de ponto de verificação e habilitá-lo disparará o modo deRECORD. - Remover APIs
ServiceBusQueueOperatio#setClientConfigeServiceBusTopicOperation#setClientConfig. Para configurar oServiceBusProcessorClientsubjacente usado pelo adaptador de canal de entrada, os usuários podem usarServiceBusContainerPropertiesem vez disso. - Solte
CompletableFuturesuporte emServiceBusTemplateeDefaultMessageHandler, suporteReactorem vez disso. - Adicione uma nova API de
ServiceBusTemplate#setDefaultEntityTypepara especificar o tipo de entidade, que é necessário quando nenhum bean dePropertiesSupplier<String, ProducerProperties>é fornecido para oProducerProperties#entityType. - Remover o cabeçalho da mensagem
AzureHeaders.RAW_ID. Em vez disso, useServiceBusMessageHeaders.MESSAGE_ID.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus:
| Classe herdada | 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 |
Snippet de código de exemplo
ServiceBusInboundChannelAdaptercódigo de exemplo:Código herdado de usar
ServiceBusQueueInboundChannelAdapterouServiceBusTopicInboundChannelAdapter: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; } }DefaultMessageHandlercódigo de exemplo:Código herdado, fazendo 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; } }
Do azure-spring-integration-servicebus ao 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 de Introdução
e de 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 um BOM para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
Alterações de API
- Solte
ServiceBusQueueOperationeServiceBusTopicOperationcom a função de assinatura movida para oServiceBusMessageListenerContainerde classe e a função de envio movida paraServiceBusTemplate. - Solte
ServiceBusQueueInboundChannelAdaptereServiceBusTopicInboundChannelAdaptere mova a funcionalidade para ouvir uma entidade de fila/tópico do Barramento de Serviço para ServiceBusInboundChannelAdapter. - Altere o construtor de
ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String)paraServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Altere o construtor de
ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String)paraServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer)eServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode). - Remover APIs
ServiceBusQueueOperation#setCheckpointConfigeServiceBusTopicOperation#setCheckpointConfig. Para definir a configuração de ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoServiceBusContainerProperties#setAutoCompleteem vez disso. Desabilitar o modo de preenchimento automático é equivalente aMANUALmodo de ponto de verificação e habilitá-lo disparará o modo deRECORD. - Remover APIs
ServiceBusQueueOperation#setClientConfigeServiceBusTopicOperation#setClientConfig. Para configurar oServiceBusProcessorClientsubjacente usado pelo adaptador de canal de entrada, os usuários podem usarServiceBusContainerPropertiesem vez disso. - Solte
CompletableFuturesuporte emServiceBusTemplateeDefaultMessageHandler, suporteReactorem vez disso. - Adicione uma nova API de
ServiceBusTemplate#setDefaultEntityTypepara especificar o tipo de entidade, que é necessário quando nenhum bean dePropertiesSupplier<String, ProducerProperties>é fornecido para oProducerProperties#entityType. - Remover o cabeçalho da mensagem
AzureHeaders.RAW_ID. Em vez disso, useServiceBusMessageHeaders.MESSAGE_ID.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-servicebus para spring-integration-azure-servicebus:
| Classe herdada | 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 |
Do 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 herdadas | Propriedades modernas |
|---|---|
| conta .account dospring.cloud.azure.storage | spring.cloud.azure.storage.queue.account-name |
| spring.cloud.azure.storage.access-key | spring.cloud.azure.storage.queue.account-key |
| spring.cloud.azure.storage.resource-group | spring.cloud.azure.storage.queue.resource.resource-group |
Alterações de API
- Solte
StorageQueueOperatione forneçaStorageQueueTemplate. - Solte
checkpoint-modeconfiguração emStorageQueueTemplate, dê suporte apenas ao modoMANUAL.
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 herdada | 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.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
Do azure-spring-integration-storage-queue ao spring-integration-azure-storage-queue
Este guia destina-se a ajudar na migração para spring-integration-azure-storage-queue da versão 2 do azure-spring-integration-storage-queue.
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções de Introdução
e de 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 um BOM para todas as bibliotecas do Spring Cloud Azure, consulte a seção BOM.
Alterações de API
- Solte
StorageQueueOperatione forneçaStorageQueueTemplate. - Solte
checkpoint-modeconfiguração emStorageQueueTemplate, dê suporte apenas ao modoMANUAL.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-storage-queue para spring-integration-azure-storage-queue.
| Classe herdada | 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.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reactor.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
De azure-spring-cloud-stream-binder-eventhubs a 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 de 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de 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 associador é renomeado de: eventhub para eventhubs.
Para obter 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 herdadas | 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.account-name |
| spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
| spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Nota
O tipo de valor da configuração de start-position também é alterado de uma enumeração de com.azure.spring.integration.core.api.StartPosition para um map de StartPositionProperties para cada partição. Portanto, a chave é a 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 e inclusão.
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 maneira:
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
Nota
A Microsoft recomenda usar o 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 alto grau de confiança no aplicativo e traz riscos que não estã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 computador 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 antes da 4.0, o aplicativo primeiro se conectará ao ARM (Azure Resource Manager) com a entidade de segurança fornecida e, em seguida, recuperará a cadeia de conexão do namespace especificado com o 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 ser concedida com a função 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. Uma ainda está usando as entidades de segurança para se conectar ao ARM e recuperar as cadeias de conexão em que a função Contributor é necessária para as entidades de segurança. O outro aproveita as entidades de segurança para se autenticar na 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 Data são necessárias para operações de mensagens. Para garantir que a entidade de segurança tenha recebido a permissão suficiente para acessar o recurso do Azure, consulte Autorizar acesso com a ID do Microsoft Entra.
Para autenticação com base no ARM, usando a entidade de serviço como exemplo, a migração de configuração é listada a seguir, em que 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}
Nota
Os valores permitidos para tenant-id são: common, organizations, consumersou a ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado no ponto de extremidade incorreto (contas pessoais e de organização) da Error AADSTS50020 – A conta de usuário do provedor de identidade não existe node 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.
Configuração moderna, as propriedades da ID da assinatura do Azure e do grupo de recursos são necessárias:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
eventhubs:
namespace: ${EVENTHUB_NAMESPACE}
resource:
resource-group: ${RESOURCE_GROUP}
Nota
Os valores permitidos para tenant-id são: common, organizations, consumersou a ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado no ponto de extremidade incorreto (contas pessoais e de organização) da Error AADSTS50020 – A conta de usuário do provedor de identidade não existe node 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 a ID do Microsoft Entra diretamente sem fazer um desvio para o ARM. Conceda à entidade de segurança as funções de Data necessárias para operações de mensagens. Os exemplos de configuração da entidade de serviço e da identidade gerenciada são listados da seguinte maneira:
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}
Nota
Os valores permitidos para tenant-id são: common, organizations, consumersou a ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado no ponto de extremidade incorreto (contas pessoais e de organização) da Error AADSTS50020 – A conta de usuário do provedor de identidade não existe node 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 de 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 herdada | Classe moderna |
|---|---|
| com.azure.spring.integration.core.api.reactor.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
De azure-spring-cloud-stream-binder-servicebus-* a 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 de Introdução
e de 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 um BOM 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-migratordurante 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 de configurações globais
.
Alterações na configuração do SDK
Importante
As libaries herdadas do associador são azure-spring-cloud-stream-binder-servicebus-queue e azure-spring-cloud-stream-binder-servicebus-topice agora são mescladas em uma spring-cloud-azure-stream-binder-servicebus.
Importante
O tipo de associador é combinado de servicebus-queue e servicebus-topic como servicebus.
A tabela a seguir lista as novas propriedades de configuração de 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 herdadas | Propriedades modernas |
|---|---|
| spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
| spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebus.client.transport-type |
| spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
| spring.cloud.azure.servicebus.retry-options.max-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries ou spring.cloud.azure.servicebus.retry.fixed.max-retries, deve ser configurado dependendo de 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 do 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. de simultaneidade | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
| spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer. no 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. de simultaneidade | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
| spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer. no modo de ponto de verificação | spring.cloud.stream.servicebus.bindings.binding-name.consumer. de preenchimento automático |
Nota
A propriedade de simultaneidade será substituída pelo maxConcurrentSessions quando sessionsEnabled for true e maxConcurrentCalls quando sessionsEnabled for false.
Nota
Habilitar a conclusão automática é igual a RECORD modo de ponto de verificação e, em contrário, o modo de MANUAL.
Exemplos de migração de configuração
Configuração herdada, tomando 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
Nota
A Microsoft recomenda usar o 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 alto grau de confiança no aplicativo e traz riscos que não estã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 computador 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 antes da 4.0, o aplicativo primeiro se conectará ao ARM (Azure Resource Manager) com a entidade de segurança fornecida e, em seguida, recuperará a cadeia de conexão do namespace especificado com o 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 Colaborador para recuperar o namespace do Barramento de Serviço do Azure associado.
Para o Azure Spring Apps 4.0, fornecemos duas maneiras de aproveitar as entidades de segurança para autenticação. Uma ainda está usando as entidades de segurança para se conectar ao ARM e recuperar as cadeias de conexão em que a função Contributor é necessária para as entidades de segurança. O outro aproveita as entidades de segurança para autenticar na 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 Data são necessárias para operações de mensagens. Para garantir que a entidade de segurança tenha recebido a permissão suficiente para acessar o recurso do Azure, consulte Autorizar acesso com a ID do Microsoft Entra.
Para autenticação com base no ARM, usando a entidade de serviço como exemplo, a migração de configuração é listada a seguir, em que 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}
Nota
Os valores permitidos para tenant-id são: common, organizations, consumersou a ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado no ponto de extremidade incorreto (contas pessoais e de organização) da Error AADSTS50020 – A conta de usuário do provedor de identidade não existe node 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.
Configuração moderna, as propriedades da ID da assinatura do Azure e do grupo de recursos são necessárias:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
servicebus:
namespace: ${SERVICEBUS_NAMESPACE}
resource:
resource-group: ${SERVICEBUS_RESOURCE_GROUP}
Nota
Os valores permitidos para tenant-id são: common, organizations, consumersou a ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado no ponto de extremidade incorreto (contas pessoais e de organização) da Error AADSTS50020 – A conta de usuário do provedor de identidade não existe node 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 a ID do Microsoft Entra diretamente sem fazer um desvio para o ARM. Conceda à entidade de segurança as funções de Data necessárias para operações de mensagens. Os exemplos de configuração da entidade de serviço e da identidade gerenciada são listados da seguinte maneira:
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}
Nota
Os valores permitidos para tenant-id são: common, organizations, consumersou a ID do locatário. Para obter mais informações sobre esses valores, consulte a seção Usado no ponto de extremidade incorreto (contas pessoais e de organização) da Error AADSTS50020 – A conta de usuário do provedor de identidade não existe node 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 de API
- Remover o cabeçalho da mensagem
AzureHeaders.RAW_ID. Em vez disso, useServiceBusMessageHeaders.MESSAGE_ID.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs.
| Classe herdada | 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 de com.azure.spring:azure-spring-cloud-messaging não está pronta para 4.0. A função de anotações do ouvinte está em reformulação, portanto, as anotações @AzureMessageListener, @AzureMessageListenerse @EnableAzureMessaging não têm suporte no momento.