Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este guia ajuda na migração para o Spring Cloud Azure 4.0 a partir das bibliotecas legadas do Azure Spring.
Introdução
Chamaremos as bibliotecas cujo 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 legadas.
A familiaridade com com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-* ou com.azure.spring:azure-spring-integration-* pacote é assumida.
Se és novo nas bibliotecas Spring Cloud Azure 4.0, consulta o guia para desenvolvedores Spring Cloud Azure em vez deste guia.
Benefícios da migração
Uma pergunta natural a se fazer ao considerar a adoção de uma nova versão ou biblioteca são seus benefícios. À medida que o Azure amadureceu e foi adotado por um grupo mais diversificado de programadores, tem-nos focado em aprender os padrões e práticas para melhor apoiar a produtividade dos programadores e compreender as lacunas que as bibliotecas do Spring Cloud Azure têm.
Foram expressas várias áreas de feedback consistente nas bibliotecas do Spring Cloud Azure. O mais importante é que as bibliotecas para diferentes serviços Azure não ativaram o conjunto completo de configurações. Além disso, a inconsistência de nomenclatura de projetos, IDs de artefatos, versões e configurações tornou a curva de aprendizado íngreme.
Para melhorar a experiência de desenvolvimento nas bibliotecas Spring Cloud Azure, foi introduzido um conjunto de diretrizes de design para garantir que as bibliotecas 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 design para quem estiver interessado.
O Spring Cloud Azure 4.0 proporciona a experiência partilhada entre bibliotecas integrando-se com diferentes projetos Spring, por exemplo Spring Boot, Spring Integration, Spring Cloud Stream, entre outros. A experiência partilhada inclui:
- Uma lista de materiais unificada para incluir todas as bibliotecas Spring Cloud Azure 4.0.
- Uma convenção de nomenclatura consistente para artefatos.
- Uma maneira unificada de configurar as configurações de credencial, proxy, nova tentativa, ambiente de nuvem e camada de transporte.
- Suporta todos os métodos de autenticação que um Azure Service ou Azure Service SDK suporta.
Visão geral
Este guia de migração consiste nas seguintes seções:
- Alterações de nomeação para Spring Cloud Azure 4.0
- Alterações de artefatos: renomeado / adicionado / excluído
- Alterações de dependência
- Alterações de autenticação
- Propriedades de configuração
- Alterações de quebra de API
- Alterações na biblioteca
Alterações de nomenclatura
Nunca houve um nome consistente ou oficial para chamar todas as bibliotecas do Spring Cloud Azure. Alguns deles eram chamados Azure Spring Boot e outros Spring on Azure. Desde a versão 4.0, começámos a usar o nome do projeto Spring Cloud Azure para representar todas as bibliotecas Azure Spring.
Lista técnica
Nós costumávamos enviar duas listas técnicas para nossas bibliotecas, a azure-spring-boot-bom e a azure-spring-cloud-dependencies, mas combinamos essas duas listas técnicas em uma lista técnica desde a 4.0, a spring-cloud-azure-dependencies. Adicione uma entrada na seção dependencyManagement do seu projeto para se beneficiar do gerenciamento de dependência.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>7.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Observação
Se estiveres a usar o Spring Boot 4.0.x, certifica-te de definir a spring-cloud-azure-dependencies versão para 7.1.0.
Se estiveres a usar o Spring Boot 3.5.x, certifica-te de definir a spring-cloud-azure-dependencies versão para 6.1.0.
Se estiveres a usar o Spring Boot 3.1.x-3.5.x, certifica-te de definir a spring-cloud-azure-dependencies versão para 5.25.0.
Se você estiver usando o Spring Boot 2.x, certifique-se de definir a versão spring-cloud-azure-dependencies como 4.20.0.
Esta lista de materiais (BOM) deve ser configurada na seção <dependencyManagement> do seu arquivo pom.xml. Isto garante que todas as dependências do Spring Cloud Azure usam a mesma versão.
Para mais informações sobre a versão usada nesta lista de comandos, veja Qual Versão do Spring Cloud Azure Devo Usar.
Alterações de artefatos: renomeado / adicionado / excluído
Os IDs de grupo são os mesmos para bibliotecas Spring Cloud Azure modernas e legadas. Estão todos com.azure.spring. Os IDs de artefactos para as bibliotecas modernas do Spring Cloud Azure mudaram. De acordo com o projeto Spring ao qual pertence, Spring Boot, Spring Integration ou Spring Cloud Stream, o padrão de IDs de artefato pode ser spring-cloud-azure-starter-[service], spring-integration-azure-[service]ou spring-cloud-azure-stream-binder-[service]. Os iniciadores herdados de cada um têm uma ID de artefato seguindo o padrão azure-spring-*. Isso fornece um meio rápido e acessível para ajudar a entender, rapidamente, se você está usando iniciantes modernos ou legados.
No processo de desenvolvimento do Spring Cloud Azure 4.0, renomeámos alguns artefactos para que seguissem as novas convenções de nomenclatura, eliminámos alguns artefactos para que a funcionalidade pudesse ser colocada num artefacto mais apropriado, e adicionámos novos artefactos para melhor servir alguns cenários.
A tabela a seguir mostra os mapeamentos entre a ID do artefato herdado e a ID do artefato moderno:
| ID do artefato herdado | ID de artefato moderno | Descrição |
|---|---|---|
| azure-spring-boot-starter | spring-cloud-azure-starter | Este artefato foi excluído com todas as funcionalidades sendo mescladas no novo artefato spring-cloud-azure-starter. |
| azure-spring-boot-starter-active-directory | spring-cloud-azure-starter-active-directory | Renomeado o artefato. |
| azure-spring-boot-starter-active-directory-b2c | spring-cloud-azure-starter-active-directory-b2c | Renomeado o artefato. |
| azure-spring-boot-starter-cosmos | spring-cloud-azure-starter-data-cosmos | Renomeei o artefacto para adicionar data, indicando o uso do Spring Data Azure Cosmos DB. |
| azure-spring-boot-starter-keyvault-certificates | não aplicável | Não incluído nesta versão, mas será suportado na versão posterior. |
| azure-spring-boot-starter-keyvault-secrets | spring-cloud-azure-starter-keyvault-secrets | Renomeado o artefato. |
| azure-spring-boot-starter-servicebus-jms | spring-cloud-azure-starter-servicebus-jms | Renomeado o artefato. |
| azure-spring-boot-starter-storage | spring-cloud-azure-starter-storage-blob spring-cloud-azure-starter-storage-file-share |
O artefato herdado contém a funcionalidade de Blob de Armazenamento e Compartilhamento de Arquivos, ele foi emendado em dois artefatos separados na versão 4.0, spring-cloud-azure-starter-storage-blob e spring-cloud-azure-starter-storage-file-share. |
| azure-spring-boot | não aplicável | Este artefato foi excluído com todas as funcionalidades sendo mescladas no novo artefato spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-autoconfigure | não aplicável | Este artefato foi excluído com todas as funcionalidades sendo mescladas no novo artefato spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-context | não aplicável | Esse artefato foi excluído com todas as funcionalidades sendo mescladas nos novos spring-cloud-azure-autoconfigure e spring-cloud-azure-resourcemanager artefatos. |
| azure-spring-cloud-messaging | spring-messaging-azure | A anotação do ouvinte de mensagens foi descartada. |
| azure-spring-cloud-starter-cache | não aplicável | Este artefato foi excluído, para usar redis, basta adicionar spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Para mais informações sobre o uso, consulte Spring Cloud Azure suporte a Redis. |
| azure-spring-cloud-starter-eventhubs-kafka | não aplicável | Este artefato foi excluído, para usar kafka, basta adicionar spring kafka, spring-cloud-azure-resourcemanager e spring-cloud-azure-starter. Para mais informações sobre o uso, consulte Spring Cloud Azure suporte 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 | Renomeei o artefacto para adicionar integration, indicando o uso da Integração Spring com Service Bus. |
| azure-spring-cloud-starter-storage-queue | spring-cloud-azure-starter-integration-storage-queue | Renomeado o artefato para adicionar integration, indicando o uso da Integração Spring com a Fila de Armazenamento. |
| azure-spring-cloud-storage | não aplicável | Este artefato foi excluído com todas as funcionalidades mescladas no novo artefato spring-cloud-azure-autoconfigure. |
| azure-spring-cloud-stream-binder-eventhubs | spring-cloud-azure-stream-binder-eventhubs | Este artefato foi refatorado usando um novo design, principalmente spring-cloud-azure-stream-binder-eventhubs e spring-cloud-azure-stream-binder-eventhubs-core. |
| azure-spring-cloud-stream-binder-service-core | spring-cloud-azure-stream-binder-servicebus-core | Renomeado o artefato. |
| azure-spring-cloud-stream-binder-servicebus-queue | spring-cloud-azure-stream-binder-servicebus | Este artefato foi excluído com todas as funcionalidades serem mescladas no artefato spring-cloud-azure-stream-binder-servicebus. |
| azure-spring-cloud-stream-binder-servicebus-topic | spring-cloud-azure-stream-binder-servicebus | Este artefato foi excluído com todas as funcionalidades serem mescladas no artefato spring-cloud-azure-stream-binder-servicebus. |
| azure-spring-integration-core | spring-integration-azure-core | Renomeado o artefato. |
| azure-spring-integration-eventhubs | spring-integration-azure-eventhubs | Renomeie o artefato. |
| azure-spring-integration-servicebus | spring-integration-azure-servicebus | Renomeie o artefato. |
| azure-spring-integration-storage-queue | spring-integration-azure-storage-queue | Renomeie o artefato. |
| não aplicável | spring-cloud-azure-atuador | O artefacto recentemente adicionado do Atuador Spring Cloud Azure. |
| não aplicável | spring-cloud-azure-atuator-autoconfigure | O novo artefacto AutoConfigure do Spring Cloud Azure Actuator, incluindo a autoconfiguração para o atuador. |
| não aplicável | spring-cloud-azure-autoconfigure | Artefacto Spring Cloud Azure AutoConfigure recentemente adicionado, incluindo toda a autoconfiguração para clientes SDK, suporte Spring Security, Spring Data e Spring Integration. |
| não aplicável | spring-cloud-azure-core | Artefacto Spring Cloud Azure Core recentemente adicionado, incluindo toda a funcionalidade principal. |
| não aplicável | spring-cloud-azure-resourcemanager | Artefacto do Resource Manager recentemente adicionado. É a biblioteca Core que usa o Azure Resource Manager para ler metadados e criar recursos. |
| não aplicável | spring-cloud-azure-service | Artefacto recentemente adicionado do Spring Cloud Azure Service, incluindo abstrações para serviços Azure. |
| não aplicável | spring-cloud-azure-starter-appconfiguration | Starter recentemente adicionado para usar o cliente Azure App Configuration SDK. |
| não aplicável | primavera-nuvem-azure-starter-cosmos | Iniciador recentemente adicionado para usar o cliente Azure Cosmos DB SDK. |
| não aplicável | spring-cloud-azure-starter-eventhubs | Starter recentemente adicionado para usar o cliente SDK do Azure Event Hubs. |
| não aplicável | spring-cloud-azure-starter-servicebus | Starter recentemente adicionado para usar o cliente Azure Service Bus SDK. |
| não aplicável | spring-cloud-azure-starter-storage-blob | Starter recentemente adicionado para usar o cliente Azure Storage Blob SDK. |
| não aplicável | spring-cloud-azure-starter-storage-file-share | Starter recentemente adicionado para usar o cliente Azure Storage File Share SDK. |
| não aplicável | spring-cloud-azure-starter-storage-queue | Starter recentemente adicionado para usar o cliente Azure Storage Queue SDK. |
| não aplicável | spring-cloud-azure-starter-stream-eventhubs | Starter recentemente adicionado para usar Azure Event Hubs Spring Cloud Stream Binder. |
| não aplicável | spring-cloud-azure-starter-stream-servicebus | Starter recentemente adicionado para usar Azure Service Bus Spring Cloud Stream Binder |
| não aplicável | spring-cloud-azure-stream-binder-eventhubs-core | Artefacto central do Spring Cloud Stream recentemente adicionado para Azure Event Hubs. |
Alterações de dependências
Algumas dependências desnecessárias foram incluídas nos artefactos legados, que removemos nas bibliotecas modernas do Spring Cloud Azure 4.0. Certifique-se de adicionar as dependências removidas manualmente ao seu projeto para evitar falhas.
As bibliotecas que têm alterações de dependência incluem:
- spring-cloud-azure-starter
- spring-cloud-azure-starter-active-directory
- spring-cloud-azure-starter-active-directory-b2c
Alterações de autenticação
O Spring Cloud Azure 4.0 suporta todos os métodos de autenticação que cada Azure Service SDK suporta. Ele permite que você configure uma credencial de token global, bem como forneça a credencial de token em cada nível de serviço. Mas não é necessária uma credencial para configurar o Spring Cloud Azure 4.0 porque pode aplicar a credencial armazenada num ambiente local de desenvolvimento ou identidade gerida no Azure Services. Só tens de garantir que o principal recebeu permissão suficiente para aceder aos recursos do Azure alvo.
Observação
Ao atribuir papéis aos responsáveis de segurança para interagir com Azure serviços de mensagens, os papéis relacionados Data são obrigados a realizar operações de mensagens. Para Azure Spring Apps Stream Event Hubs / bibliotecas Service Bus Binder, é necessário Contributor função quando é necessária a função de criação automática de recursos. Para mais informações, consulte Azure funções incorporadas.
Uma credencial encadeada, o bean DefaultAzureCredential é configurado automaticamente por padrão e será usado por todos os componentes se não forem especificadas mais informações de autenticação. Para mais informações, consulte a secção DefaultAzureCredential da biblioteca cliente de identidade Azure para Java.
Propriedades de configuração
Migração de propriedades
Criamos um arquivo de additional-spring-configuration-metadata.json para facilitar a migração de propriedade ao usar com o spring-boot-properties-migrator. Primeiro, adicione o seguinte migrador de propriedades ao seu aplicativo:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
Ou, se você estiver usando o Gradle:
runtime("org.springframework.boot:spring-boot-properties-migrator")
Se executar a aplicação, ela irá identificar as propriedades que já não são geridas pelo Spring Cloud Azure. Se houver uma substituição, ela irá remapear temporariamente a propriedade para você com um aviso. Se não houver uma substituição, um relatório de erros fornecerá mais informações. De qualquer forma, a configuração tem de ser atualizada e a dependência removida depois de atualizar a configuração.
Antes de prosseguir, é uma boa ideia usar o recurso de pesquisa do IDE para verificar se você não está usando uma das propriedades migradas em um teste de integração.
Observação
Alteramos muitas propriedades de configuração nesta alteração. Usar o spring-boot-properties-migrator ajudará a suavizar sua migração.
Configurações globais
O moderno spring-cloud-azure-starter permite-lhe definir propriedades que se aplicam a todos os Azure SDKs no namespace spring.cloud.azure. Esse recurso não era suportado no azure-spring-boot-starterherdado. As configurações globais podem ser divididas em cinco categorias, mostradas na tabela a seguir:
| Prefixo | Descrição |
|---|---|
| spring.cloud.azure.client | Configura os clientes de transporte por baixo de cada Azure SDK. |
| spring.cloud.azure.credencial | Configura como autenticar com o Microsoft Entra ID. |
| spring.cloud.azure.profile | Configura o ambiente cloud do Azure. |
| spring.cloud.azure.proxy | Configura as opções de proxy, aplica a todos os clientes do Azure SDK. |
| spring.cloud.azure.retry | Configura as opções de retentativa, aplica a todos os clientes do Azure SDK. As opções de repetição suportaram parte dos SDKs, não há spring.cloud.azure.cosmos.retry. |
Para uma lista completa de configurações, veja Spring Cloud Azure configurações de proprietários.
Configurar cada SDK
Para obter detalhes sobre as opções de configuração no nível do SDK, use os seguintes links:
- De azure-spring-boot-starter-active-directory para spring-cloud-azure-starter-active-directory
- De azure-spring-boot-starter-active-directory-b2c para spring-cloud-azure-starter-active-directory-b2c
- De azure-spring-boot-starter-cosmos para spring-cloud-azure-starter-data-cosmos
- De azure-spring-boot-starter-keyvault-secrets para spring-cloud-azure-starter-keyvault-secrets
- De azure-spring-boot-starter-servicebus-jms para spring-cloud-azure-starter-servicebus-jms
- De azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob
- Do azure-spring-boot-starter-storage ao spring-cloud-azure-starter-storage-file-share
- De azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs
- De azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus
- De azure-spring-cloud-starter-storage-queue para spring-cloud-azure-starter-integration-storage-queue
- De azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs
- De azure-spring-cloud-stream-binder-servicebus-* para spring-cloud-azure-stream-binder-servicebus
Alterações de quebra de API
Para obter detalhes sobre as alterações de quebra de API em cada biblioteca, use os seguintes links:
- De azure-spring-boot-starter-active-directory para spring-cloud-azure-starter-active-directory
- De azure-spring-boot-starter-active-directory-b2c para spring-cloud-azure-starter-active-directory-b2c
- De azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob
- Do azure-spring-boot-starter-storage ao spring-cloud-azure-starter-storage-file-share
- De azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs
- De azure-spring-integration-eventhubs para spring-integration-azure-eventhubs
- De azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus
- De azure-spring-integration-servicebus para spring-integration-azure-servicebus
- De azure-spring-cloud-starter-storage-queue para spring-cloud-azure-starter-integration-storage-queue
- De azure-spring-integration-storage-queue para spring-integration-azure-storage-queue
- De azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs
- De azure-spring-cloud-stream-binder-servicebus-* para spring-cloud-azure-stream-binder-servicebus
Alterações na biblioteca
As alterações de quebra em cada biblioteca são introduzidas da seguinte forma.
De azure-spring-boot-starter a spring-cloud-azure-starter
Este guia destina-se a ajudar na migração para
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações de dependência
Algumas dependências desnecessárias foram incluídas nos artefactos legados, que removemos nas bibliotecas modernas do Spring Cloud Azure 4.0. Certifique-se de adicionar as dependências removidas manualmente ao seu projeto para evitar falhas não intencionais.
A tabela a seguir mostra as dependências removidas:
| Dependências removidas | Descrição |
|---|---|
| org.springframework.boot:spring-boot-starter-validation | Inclua o iniciador de validação se quiser usar o Hibernate Validator. |
De azure-spring-boot-starter-active-directory para spring-cloud-azure-starter-active-directory
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-active-directory da versão 3 do azure-spring-boot-starter-active-directory.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações de dependência
Algumas dependências desnecessárias no artefacto legado foram removidas desde a moderna biblioteca Spring Cloud Azure 4.0. Adicione essas dependências removidas ao seu projeto para evitar falhas não intencionais.
A tabela a seguir mostra as dependências removidas:
| Dependências removidas | Descrição |
|---|---|
| com.fasterxml.jackson.core:jackson-databind | Adicione essa dependência ao seu projeto, se necessário. |
| io.projectreactor.netty:reactor-netty | Adicione essa dependência ao seu projeto, se necessário. |
| org.springframework.boot:spring-boot-starter-validation | Adicione essa dependência ao seu projeto, se necessário. |
| org.springframework.boot:primavera-boot-starter-webflux | Adicione essa dependência ao seu projeto, se necessário. |
Alterações na configuração do SDK
Esta seção inclui as alterações sobre as propriedades adicionadas, removidas e alteradas.
- Os dois pontos seguintes são os principais a prestar atenção:
- O prefixo de todos os nomes de propriedades de configuração foi alterado de
azure.activedirectoryparaspring.cloud.azure.active-directory. - Uma nova propriedade
spring.cloud.azure.active-directory.enabledé adicionada para ativar/desativar funcionalidades relacionadas Microsoft Entra. O valor predefinido éfalse.
A tabela a seguir mostra os mapeamentos de propriedades entre azure-spring-boot-starter-active-directory e spring-cloud-azure-starter-active-directory:
| Propriedades legadas | Propriedades modernas |
|---|---|
| azure.activedirectory.app-id-uri | spring.cloud.azure.active-directory.app-id-uri |
| azure.activedirectory.application-type | spring.cloud.azure.active-directory.tipo-de-aplicação |
| azure.activedirectory.authorization-clients | spring.cloud.azure.active-directory.authorization-clients |
| azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type |
| azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand |
| azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes | spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes |
| azure.activedirectory.authenticate-additional-parameters | spring.cloud.azure.active-directory.authenticate-additional-parameters |
| azure.activedirectory.base-uri | spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint |
| azure.activedirectory.client-id | spring.cloud.azure.active-directory.credential.client-id |
| azure.activedirectory.client-secret | spring.cloud.azure.active-directory.credential.client-secret |
| azure.activedirectory.graph-membership-uri | Consulte a tabela seguinte para obter mais informações. |
| azure.activedirectory.jwt-connect-timeout | spring.cloud.azure.active-directory.jwt-connect-timeout. |
| azure.activedirectory.jwt-read-timeout | spring.cloud.azure.active-directory.jwt-read-timeout. |
| azure.activedirectory.jwt-size-limit | spring.cloud.azure.active-directory.jwt-size-limit. |
| azure.activedirectory.jwk-set-cache-lifespan | spring.cloud.azure.active-directory.jwk-set-cache-lifespan. |
| azure.activedirectory.jwk-set-cache-refresh-time | spring.cloud.azure.active-directory.jwk-set-cache-refresh-time |
| azure.activedirectory.post-logout-redirect-uri | spring.cloud.azure.active-directory.post-logout-redirect-uri |
| azure.activedirectory.session-stateless | spring.cloud.azure.active-directory.session-stateless |
| azure.activedirectory.redirect-uri-template | spring.cloud.azure.active-directory.redirect-uri-template |
| azure.activedirectory.resource-server.claim-to-authority-prefix-map | spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map |
| azure.activedirectory.resource-server.principal-claim-name | spring.cloud.azure.active-directory.resource-server.principal-claim-name |
| azure.activedirectory.tenant-id | spring.cloud.azure.active-directory.profile.tenant-id |
| azure.activedirectory.user-group.allowed-group-ids | spring.cloud.azure.active-directory.user-group.allowed-group-ids |
| azure.activedirectory.user-group.allowed-group-names | spring.cloud.azure.active-directory.user-group.allowed-group-names |
| azure.activedirectory.user-name-attribute | spring.cloud.azure.active-directory.user-name-attribute |
O tipo de valor das seguintes propriedades é alterado de
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
São adicionadas as seguintes propriedades:
- spring.cloud.azure.active-directory.enabled
- spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
- spring.cloud.azure.active-directory.grupo-de-usuário.usar-membros-transitivos
Observação
A função de azure.activedirectory.graph-membership-uri foi substituída por 2 propriedades: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint e spring.cloud.azure.active-directory.user-group.use-transitive-members. A primeira propriedade é usada para especificar o nome do host e a segunda um sinalizador para usar o caminho da URL: v1.0/me/memberOf ou v1.0/me/transitiveMemberOf.
Eis alguns exemplos de migração:
Exemplo 1. Caso 1
Para legado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf
Para moderno: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=
https://graph.microsoft.com/+ spring.cloud.azure.active-directory.user-group.use-transitive-members=false
Exemplo 2. Caso 2
Para legado: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf
Para moderno: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=
https://graph.microsoft.com/+ spring.cloud.azure.active-directory.user-group.use-transitive-members=true
Alterações na API
A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-active-directory para spring-cloud-azure-starter-active-directory:
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.aad.webapi.AADJwtBearerTokenAuthenticationConverter | com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter |
| com.azure.spring.aad.webapi.AADResourceServerProperties | com.azure.spring.cloud.autoconfigure.aad.properties.AadResourceServerProperties |
| com.azure.spring.aad.webapi.AADResourceServerWebSecurityConfigurerAdapter | com.azure.spring.cloud.autoconfigure.aad.AadResourceServerWebSecurityConfigurerAdapter |
| com.azure.spring.aad.webapp.AADWebSecurityConfigurerAdapter | com.azure.spring.cloud.autoconfigure.aad.AadWebSecurityConfigurerAdapter |
| com.azure.spring.aad.webapp.AuthorizationClientProperties | com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties |
| com.azure.spring.aad.AADApplicationType | com.azure.spring.cloud.autoconfigure.aad.properties.AadApplicationType |
| com.azure.spring.aad.AADAuthorizationGrantType | com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType |
| com.azure.spring.aad.AADAuthorizationServerEndpoints | com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationServerEndpoints |
| com.azure.spring.aad.AADClientRegistrationRepository | com.azure.spring.cloud.autoconfigure.aad.AadClientRegistrationRepository |
| com.azure.spring.aad.AADTrustedIssuerRepository | com.azure.spring.cloud.autoconfigure.aad.AadTrustedIssuerRepository |
| com.azure.spring.autoconfigure.aad.AADAppRoleStatelessAuthenticationFilter | com.azure.spring.cloud.autoconfigure.aad.filter.AadAppRoleStatelessAuthenticationFilter |
| com.azure.spring.autoconfigure.aad.AADAuthenticationFilter | com.azure.spring.cloud.autoconfigure.aad.filter.AadAuthenticationFilter |
| com.azure.spring.autoconfigure.aad.AADAuthenticationProperties | com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthenticationProperties |
| com.azure.spring.autoconfigure.aad.UserPrincipal | com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipal |
| com.azure.spring.autoconfigure.aad.UserPrincipalManager | com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipalManager |
Esta seção lista as classes removidas do azure-spring-boot-starter-active-directory.
Classe herdada removida
- com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
- com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
- com.azure.spring.aad.webapi.validator.AADJwtClaimValidator
De azure-spring-boot-starter-active-directory-b2c para spring-cloud-azure-starter-active-directory-b2c
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-active-directory-b2c da versão 3 do azure-spring-boot-starter-active-directory-b2c.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações de dependência
Algumas dependências desnecessárias foram incluídas nos artefactos legados, que removemos nas bibliotecas modernas do Spring Cloud Azure 4.0. Certifique-se de adicionar as dependências removidas manualmente ao seu projeto para evitar falhas não intencionais.
A tabela a seguir mostra as dependências removidas:
| Dependências removidas | Descrição |
|---|---|
| org.springframework.boot:spring-boot-starter-validation | Inclua o iniciador de validação se quiser usar o Hibernate Validator. |
Alterações na configuração do SDK
Esta seção inclui as alterações sobre as propriedades adicionadas, removidas e alteradas.
- Os dois pontos seguintes são os principais a prestar atenção:
- Todos os nomes de propriedades de configuração alteraram o prefixo de
azure.activedirectory.b2cparaspring.cloud.azure.active-directory.b2c. - É adicionada uma nova propriedade
spring.cloud.azure.active-directory.b2c.enabledpara permitir ativar / desativar Azure funcionalidades relacionadas com AD B2C. O valor padrão é false.
A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-active-directory-b2c para spring-cloud-azure-starter-active-directory-b2c:
| Propriedades legadas | Propriedades modernas |
|---|---|
| azure.activedirectory.b2c.authenticate-additional-parameters | spring.cloud.azure.active-directory.b2c.authenticate-additional-parameters |
| azure.activedirectory.b2c.authorization-clients | spring.cloud.azure.active-directory.b2c.authorization-clients |
| azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME.authorization-grant-type> | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.authorization-grant-type> |
| azure.activedirectory.b2c.authorization-clients.<AZURE_CLIENT_NAME.Âmbitos> | spring.cloud.azure.active-directory.b2c.authorization-clients.<AZURE_CLIENT_NAME.Âmbitos> |
| azure.activedirectory.b2c.app-id-uri | spring.cloud.azure.active-directory.b2c.app-id-uri |
| azure.activedirectory.b2c.base-uri | spring.cloud.azure.active-directory.b2c.base-uri |
| azure.activedirectory.b2c.client-id | spring.cloud.azure.active-directory.b2c.credential.client-id |
| azure.activedirectory.b2c.client-secret | spring.cloud.azure.active-directory.b2c.credential.client-secret |
| azure.activedirectory.b2c.jwt-connect-timeout | spring.cloud.azure.active-directory.b2c.jwt-connect-timeout |
| azure.activedirectory.b2c.jwt-read-timeout | spring.cloud.azure.active-directory.b2c.jwt-read-timeout |
| azure.activedirectory.b2c.jwt-size-limit | spring.cloud.azure.active-directory.b2c.jwt-size-limit |
| azure.activedirectory.b2c.login-flow | spring.cloud.azure.active-directory.b2c.login-flow |
| azure.activedirectory.b2c.logout-success-url | spring.cloud.azure.active-directory.b2c.logout-success-url |
| azure.activedirectory.b2c.reply-url | spring.cloud.azure.active-directory.b2c.reply-url |
| azure.activedirectory.b2c.tenant-id | spring.cloud.azure.active-directory.b2c.profile.tenant-id |
| azure.activedirectory.b2c.user-flows | spring.cloud.azure.active-directory.b2c.user-flows |
| azure.activedirectory.b2c.nome-do-usuário-atributo-nome | spring.cloud.azure.active-directory.b2c.user-name-attribute-name |
Propriedades removidas do azure-spring-boot-starter-active-directory-b2c:
- azure.activedirectory.b2c.allow-telemetry
- azure.activedirectory.b2c.tenant
O tipo de valor das seguintes propriedades é alterado de
longparaDuration:- jwt-connect-timeout
- jwt-read-timeout
Alterações na API
A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-active-directory-b2c para spring-cloud-azure-starter-active-directory-b2c:
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.autoconfigure.b2c.AADB2CAuthorizationRequestResolver | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cAuthorizationRequestResolver |
| com.azure.spring.autoconfigure.b2c.AADB2CJwtBearerTokenAuthenticationConverter | com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter |
| com.azure.spring.autoconfigure.b2c.AADB2CLogoutSuccessHandler | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cLogoutSuccessHandler |
| com.azure.spring.autoconfigure.b2c.AADB2COidcLoginConfigurer | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2COidcLoginConfigurer |
| com.azure.spring.autoconfigure.b2c.AADB2CProperties | com.azure.spring.cloud.autoconfigure.aadb2c.properties.AadB2cProperties |
| com.azure.spring.autoconfigure.b2c.AADB2CTrustedIssuerRepository | com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cTrustedIssuerRepository |
| com.azure.spring.autoconfigure.b2c.AuthorizationClientProperties | com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties |
De azure-spring-boot-starter-cosmos para spring-cloud-azure-starter-data-cosmos
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-data-cosmos a partir da versão 3 do azure-spring-boot-starter-cosmos.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Todos os nomes de propriedades de configuração alteraram o prefixo de azure.cosmos para spring.cloud.azure.cosmos.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-cosmos para spring-cloud-azure-starter-data-cosmos:
| Propriedades legadas | Propriedades modernas |
|---|---|
| azure.cosmos.connection-mode | spring.cloud.azure.cosmos.connection-mode |
| azure.cosmosnível .consistency | spring.cloud.azure.cosmos.nível de consistência |
| azure.cosmos.database | spring.cloud.azure.cosmos.database |
| azure.cosmos.key | .key spring.cloud.azure.cosmos |
| azure.cosmos.populate-query-metrics | spring.cloud.azure.cosmos.populate-query-metrics |
| azure.cosmos.uri | spring.cloud.azure.cosmos.endpoint |
De azure-spring-boot-starter-keyvault-secrets para spring-cloud-azure-starter-keyvault-secrets
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-keyvault-secrets da versão 3 do azure-spring-boot-starter-keyvault-secrets.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Esta seção inclui as alterações sobre as propriedades adicionadas, removidas e alteradas.
A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-keyvault-secrets para spring-cloud-azure-starter-keyvault-secrets:
| Propriedades legadas | Propriedades modernas |
|---|---|
| azure.keyvault.minúsculas-sensitive-keys | spring.cloud.azure.keyvault.secret.property-source[n].sensível a maiúsculas e minúsculas |
| azure.keyvault.certificate-password | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password |
| azure.keyvault.certificate-path | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path |
| azure.keyvault.client-id | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id |
| azure.keyvault.client-key | spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret |
| azure.keyvault.enabled | spring.cloud.azure.keyvault.secret.property-source-enabled e spring.cloud.azure.keyvault.secret.property-source-enabled |
| azure.keyvault.order | Não há mais suporte. Em vez disso, use a ordem em property-source[n]. |
| azure.keyvault.refresh-interval | spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval |
| azure.keyvault.secret-keys | spring.cloud.azure.keyvault.secret.property-source[n].secret-keys |
| azure.keyvault.tenant-id | spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id |
| azure.keyvault.uri | spring.cloud.azure.keyvault.secret.property-source[n].endpoint |
- Propriedades removidas de spring-cloud-azure-starter-keyvault-secrets
azure.keyvault.allow-telemetry azure.keyvault.order
Os seguintes pontos você deve prestar atenção:
- 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 ativar todas as funcionalidades Key Vault Secret, incluindo configurar Key Vault grãos clientes secretos (comoSecretClienteSecretAsyncClient) e adicionarKeyVaultPropertySourceemConfigurableEnvironment. -
spring.cloud.azure.keyvault.secret.property-source-enabledé usado para habilitar todos osKeyVaultPropertySource. Só entrará em vigor quandospring.cloud.azure.keyvault.secret.enabled=true. - Para Azure propriedades comuns (como
client,proxy,retry,credential,profile) e propriedades 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 de um recurso Azure único, por isso, se não estiver configurado, não receberá valor de outros locais.
De azure-spring-boot-starter-servicebus-jms para spring-cloud-azure-starter-servicebus-jms
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-servicebus-jms da versão 3 do azure-spring-boot-starter-servicebus-jms.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
O tipo de configuração para spring.jms.servicebus.idle-timeout alterado de long(milissegundos) para Duration padrão para legibilidade.
De azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-storage-blob da versão 3 do azure-spring-boot-starter-storage.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Todos os nomes de propriedades de configuração alteraram o prefixo de azure.storage para spring.cloud.azure.storage.blob.
A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob:
| Propriedades legadas | Propriedades modernas |
|---|---|
| azure.storage.nome-da-conta | spring.cloud.azure.storage.blob.nome-da-conta |
| azure.storage.account-key | spring.cloud.azure.storage.blob.account-key |
| azure.storage.blob-endpoint | spring.cloud.azure.storage.blob.endpoint |
Alterações na API
A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-blob:
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
| com.azure.spring.autoconfigure.storage.resource.BlobStorageResource | com.azure.spring.core.resource.StorageBlobResource |
| com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageBlobProtocolResolver |
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
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Todos os nomes de propriedades de configuração alteraram o prefixo de azure.storage para spring.cloud.azure.storage.fileshare.
A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-file-share:
| Propriedades legadas | Propriedades modernas |
|---|---|
| azure.storage.nome-da-conta | spring.cloud.azure.storage.fileshare.nome-da-conta |
| azure.storage.account-key | spring.cloud.azure.storage.fileshare.account-key |
| azure.storage.file-endpoint | spring.cloud.azure.storage.fileshare.endpoint |
Alterações na API
A tabela a seguir mostra os mapeamentos de classe de azure-spring-boot-starter-storage para spring-cloud-azure-starter-storage-file-share:
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
| com.azure.spring.autoconfigure.storage.resource.FileStorageResource | com.azure.spring.core.resource.StorageFileResource |
| com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver | com.azure.spring.core.resource.AzureStorageFileProtocolResolver |
De azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-integration-eventhubs partir da versão 2 do azure-spring-cloud-starter-eventhubs.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Importante
O prefixo de configuração foi alterado de spring.cloud.azure.eventhub para spring.cloud.azure.eventhubs.
Para alterações nas entradas filho para esse prefixo, consulte as tabelas a seguir:
A tabela a seguir mostra mapeamentos de propriedades de azure-spring-cloud-starter-eventhubs para spring-cloud-azure-starter-integration-eventhubs:
| Propriedades legadas | Propriedades modernas |
|---|---|
| spring.cloud.azure.resource-group | spring.cloud.azure.eventhubs.resource.resource-group |
| spring.cloud.azure.eventhub.namespace | spring.cloud.azure.eventhubs.namespace |
| spring.cloud.azure.eventhub.connection-string | spring.cloud.azure.eventhubs.connection-string |
| spring.cloud.azure.eventhub.checkpoint-storage-account | spring.cloud.azure.eventhubs.processor.checkpoint-store.nome-da-conta |
| spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
| spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
Por exemplo, altere de:
spring:
cloud:
azure:
eventhub:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
Para:
spring:
cloud:
azure:
eventhubs:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
processor:
checkpoint-store:
container-name: ${AZURE_STORAGE_CONTAINER_NAME}
account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
Observação
A Microsoft recomenda o uso do fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento, como para bancos de dados, caches, mensagens ou serviços de IA, requer um grau muito alto de confiança no aplicativo e traz riscos não presentes em outros fluxos. Use esse fluxo somente quando opções mais seguras, como identidades gerenciadas para conexões sem senha ou sem chave, não forem viáveis. Para operações de máquina local, prefira identidades de usuário para conexões sem senha ou sem chave.
Alterações na API
- Para obter as alterações nas anotações do ouvinte, consulte o guia de migração da biblioteca de<<>>migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging.
- Solte
EventHubOperationcom a função de assinatura movida para a classeEventHubsMessageListenerContainere a função de envio movida paraEventHubsTemplate. - Renomear
EventHubInboundChannelAdaptercomoEventHubsInboundChannelAdapterpara manter a consistência com o serviço de Azure Event Hubs. - 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 compilação. - Solte a API
EventHubOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoEventHubsContainerProperties#setCheckpointConfig. - Solte a API
EventHubOperation#setBatchConsumerConfig. Para definir a configuração de consumo em lote para o adaptador de canal de entrada, os usuários podem chamar os dois métodosEventHubsContainerProperties#getBatch#setMaxSizeeEventHubsContainerProperties#getBatch#setMaxWaitTimeenquanto isso. - Para o modo de consumo em lote, altere os nomes dos cabeçalhos das mensagens convertidas de mensagens em lote.
- Altere o cabeçalho da mensagem de
azure_eventhub_enqueued_timeparaazure_eventhubs_batch_converted_enqueued_time. - Altere o cabeçalho da mensagem de
azure_eventhub_offsetparaazure_eventhubs_batch_converted_offset. - Altere o cabeçalho da mensagem de
azure_eventhub_sequence_numberparaazure_eventhubs_batch_converted_sequence_number. - Altere o cabeçalho da mensagem de
azure_partition_keyparaazure_batch_converted_partition_key.
- Altere o cabeçalho da mensagem de
- Ao publicar mensagens em Hubs de Eventos, ignore todos os cabeçalhos de mensagens convertidos de mensagens em lote. Os cabeçalhos incluem:
- azure_batch_converted_partition_key
- azure_eventhubs_batch_converted_enqueued_time
- azure_eventhubs_batch_converted_offset
- azure_eventhubs_batch_converted_sequence_number
- azure_eventhubs_batch_converted_system_properties
- azure_eventhubs_batch_converted_application_properties
- O modo de ponto de verificação
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 Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
| com.azure.spring.integration.core.api.CheckpointConfig | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig |
| com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
| com.azure.spring.integration.core.api.reator.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.api.reator.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
Exemplo de trecho de código
EventHubsInboundChannelAdaptercódigo de exemplo:Código legado:
public class Demo { @Bean public EventHubInboundChannelAdapter messageChannelAdapter( @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubOperation eventhubOperation) { eventhubOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode (CheckpointMode.MANUAL).build()); EventHubInboundChannelAdapter adapter = new EventHubInboundChannelAdapter("EVENTHUB_NAME", eventhubOperation, "CONSUMER_GROUP"); adapter.setOutputChannel(inputChannel); return adapter; } }Código moderno:
public class Demo { @Bean public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) { EventHubsContainerProperties containerProperties = new EventHubsContainerProperties(); containerProperties.setEventHubName("EVENTHUB_NAME"); containerProperties.setConsumerGroup("CONSUMER_GROUP"); CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL); containerProperties.setCheckpointConfig(config); return new EventHubsMessageListenerContainer(processorFactory, containerProperties); } @Bean public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubsMessageListenerContainer listenerContainer) { EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer); adapter.setOutputChannel(inputChannel); return adapter; } }DefaultMessageHandlercódigo de exemplo:Código legado:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL") public MessageHandler messageSender(EventHubOperation eventhubOperation) { DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.error("There was an error sending the message.", ex); } }); return handler; } }Código moderno:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL") public MessageHandler messageSender(EventHubsTemplate eventhubOperation) { DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.error("There was an error sending the message.", ex); } }); return handler; } }
De azure-spring-integration-eventhubs para spring-integration-azure-eventhubs
Este guia destina-se a ajudar na migração para spring-integration-azure-eventhubs da versão 2 do azure-spring-integration-eventhubs.
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
Alterações na API
- Solte
EventHubOperationcom a função de assinatura movida para a classeEventHubsMessageListenerContainere a função de envio movida paraEventHubsTemplate. - Renomear
EventHubInboundChannelAdaptercomoEventHubsInboundChannelAdapterpara manter a consistência com o serviço de Azure Event Hubs. - 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 compilação. - Solte a API
EventHubOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoEventHubsContainerProperties#setCheckpointConfig. - Solte a API
EventHubOperation#setBatchConsumerConfig. Para definir a configuração de consumo em lote para o adaptador de canal de entrada, os usuários podem chamar os dois métodosEventHubsContainerProperties#getBatch#setMaxSizeeEventHubsContainerProperties#getBatch#setMaxWaitTimeenquanto isso. - Para o modo de consumo em lote, altere os nomes dos cabeçalhos das mensagens convertidas de mensagens em lote.
- Altere o cabeçalho da mensagem de
azure_eventhub_enqueued_timeparaazure_eventhubs_batch_converted_enqueued_time. - Altere o cabeçalho da mensagem de
azure_eventhub_offsetparaazure_eventhubs_batch_converted_offset. - Altere o cabeçalho da mensagem de
azure_eventhub_sequence_numberparaazure_eventhubs_batch_converted_sequence_number. - Altere o cabeçalho da mensagem de
azure_partition_keyparaazure_batch_converted_partition_key.
- Altere o cabeçalho da mensagem de
- Ao publicar mensagens em Hubs de Eventos, ignore todos os cabeçalhos de mensagens convertidos de mensagens em lote. Os cabeçalhos incluem:
- azure_batch_converted_partition_key
- azure_eventhubs_batch_converted_enqueued_time
- azure_eventhubs_batch_converted_offset
- azure_eventhubs_batch_converted_sequence_number
- azure_eventhubs_batch_converted_system_properties
- azure_eventhubs_batch_converted_application_properties
- O modo de ponto de verificação
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 Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
| com.azure.spring.integration.core.api.CheckpointConfig | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig |
| com.azure.spring.integration.core.api.CheckpointMode | com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode |
| com.azure.spring.integration.core.api.reator.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.api.reator.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter | com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter |
De azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-integration-servicebus da versão 2 do azure-spring-cloud-starter-servicebus.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Para todas as opções de configuração suportadas no spring-cloud-azure-starter-integration-servicebus, o prefixo permanece como spring.cloud.azure.servicebus.
A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus:
| Propriedades legadas | Propriedades modernas |
|---|---|
| spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
| spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebustipo .client.transport |
| spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
| spring.cloud.azure.servicebus.retry-options.max-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries ou spring.cloud.azure.servicebus.retry.fixed.max-retries, deve ser configurado dependendo spring.cloud.azure.servicebus.retry.mode= fixo ou exponencial |
| spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, deve ser configurado dependendo de spring.cloud.azure.servicebus.retry.mode= fixo ou exponencial |
| spring.cloud.azure.servicebus.retry-options.max-delay | spring.cloud.azure.servicebus.retry.exponential.max-delay |
| spring.cloud.azure.servicebus.retry-options.try-timeout | spring.cloud.azure.servicebus.retry.try-timeout |
Alterações na API
- Solte
ServiceBusQueueOperationeServiceBusTopicOperationcom a função de assinatura movida para a classeServiceBusMessageListenerContainere a função de envio movida paraServiceBusTemplate. - Coloque
ServiceBusQueueInboundChannelAdaptereServiceBusTopicInboundChannelAdapter, e mova a funcionalidade para ouvir uma entidade de fila/tópico Service Bus 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). - Solte APIs
ServiceBusQueueOperation#setCheckpointConfigeServiceBusTopicOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoServiceBusContainerProperties#setAutoCompleteem vez disso. Para desativar o modo de preenchimento automático é equivalente aMANUALmodo de ponto de verificação e para ativá-lo irá acionar o modoRECORD. - Solte APIs
ServiceBusQueueOperatio#setClientConfigeServiceBusTopicOperation#setClientConfig. Para configurar oServiceBusProcessorClientsubjacente usado pelo adaptador de canal de entrada, os usuários podem usáServiceBusContainerPropertiesem 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. - Solte o cabeçalho da mensagem
AzureHeaders.RAW_ID. UtilizeServiceBusMessageHeaders.MESSAGE_IDem substituição.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-starter-servicebus para spring-cloud-azure-starter-integration-servicebus:
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter | com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
| com.azure.spring.integration.core.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
| com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
Exemplo de trecho de código
ServiceBusInboundChannelAdaptercódigo de exemplo:Código herdado do uso de
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, tomando a fila como exemplo:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME") public MessageHandler queueMessageSender(ServiceBusQueueOperation queueOperation) { DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", queueOperation); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully."); } @Override public void onFailure(Throwable ex) { LOGGER.info("There was an error sending the message."); } }); return handler; } }Código moderno:
public class Demo { @Bean @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME") public MessageHandler queueMessageSender(ServiceBusTemplate serviceBusTemplate) { serviceBusTemplate.setDefaultEntityType(ServiceBusEntityType.QUEUE); DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", serviceBusTemplate); handler.setSendCallback(new ListenableFutureCallback<Void>() { @Override public void onSuccess(Void result) { LOGGER.info("Message was sent successfully for {}.", "QUEUE_NAME"); } @Override public void onFailure(Throwable ex) { LOGGER.info("There was an error sending the message."); } }); return handler; } }
De azure-spring-integration-servicebus para spring-integration-azure-servicebus
Este guia destina-se a ajudar na migração para spring-integration-azure-servicebus da versão 2 do azure-spring-integration-servicebus.
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
Alterações na API
- Solte
ServiceBusQueueOperationeServiceBusTopicOperationcom a função de assinatura movida para a classeServiceBusMessageListenerContainere a função de envio movida paraServiceBusTemplate. - Coloque
ServiceBusQueueInboundChannelAdaptereServiceBusTopicInboundChannelAdapter, e mova a funcionalidade para ouvir uma entidade de fila/tópico Service Bus 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). - Solte APIs
ServiceBusQueueOperation#setCheckpointConfigeServiceBusTopicOperation#setCheckpointConfig. Para definir a configuração do ponto de verificação para o adaptador de canal de entrada, os usuários podem chamar o métodoServiceBusContainerProperties#setAutoCompleteem vez disso. Para desativar o modo de preenchimento automático é equivalente aMANUALmodo de ponto de verificação e para ativá-lo irá acionar o modoRECORD. - Solte APIs
ServiceBusQueueOperation#setClientConfigeServiceBusTopicOperation#setClientConfig. Para configurar oServiceBusProcessorClientsubjacente usado pelo adaptador de canal de entrada, os usuários podem usáServiceBusContainerPropertiesem 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. - Solte o cabeçalho da mensagem
AzureHeaders.RAW_ID. UtilizeServiceBusMessageHeaders.MESSAGE_IDem substituição.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-servicebus para spring-integration-azure-servicebus:
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter | com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter |
| com.azure.spring.integration.core.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
| com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter | com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter |
De azure-spring-cloud-starter-storage-queue para spring-cloud-azure-starter-integration-storage-queue
Este guia destina-se a ajudar na migração para spring-cloud-azure-starter-integration-storage-queue da versão 2 do azure-spring-cloud-starter-storage-queue.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Todos os nomes de propriedades de configuração alteraram o prefixo de spring.cloud.azure.storage para spring.cloud.azure.storage.queue.
A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-cloud-starter-storage-queue para spring-cloud-azure-starter-integration-storage-queue:
| Propriedades legadas | Propriedades modernas |
|---|---|
| spring.cloud.azure.storage.account | spring.cloud.azure.storage.queue.nome-da-conta |
| spring.cloud.azure.storage.access-key | spring.cloud.azure.storage.queue.account-key |
| spring.cloud.azure.storage.resource-group | spring.cloud.azure.storage.queue.resource.resource-group |
Alterações na API
- Solte
StorageQueueOperatione forneçaStorageQueueTemplateem vez disso. - Solte
checkpoint-modeconfiguração noStorageQueueTemplate, suporte apenas o 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 Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
| com.azure.spring.integration.core.api.reator.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reator.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
De azure-spring-integration-storage-queue para spring-integration-azure-storage-queue
Este guia destina-se a ajudar na migração para spring-integration-azure-storage-queue da versão 2 doazure-spring-integration-storage-queue .
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
Alterações na API
- Solte
StorageQueueOperatione forneçaStorageQueueTemplateem vez disso. - Solte
checkpoint-modeconfiguração noStorageQueueTemplate, suporte apenas o modoMANUAL.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-integration-storage-queue para spring-integration-azure-storage-queue.
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter | com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter |
| com.azure.spring.integration.core.api.reator.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.storage.queue.StorageQueueTemplate | com.azure.spring.storage.queue.core.StorageQueueTemplate |
| com.azure.spring.integration.core.api.reator.DefaultMessageHandler | com.azure.spring.integration.core.handler.DefaultMessageHandler |
| com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource | com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource |
De azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs
Este guia destina-se a ajudar na migração para spring-cloud-azure-stream-binder-eventhubs da versão 2 do azure-spring-cloud-stream-binder-eventhubs.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Importante
O prefixo de configuração foi alterado de spring.cloud.azure.eventhub para spring.cloud.azure.eventhubs.
Importante
O tipo de fichário é renomeado de: eventhub para eventhubs.
Para alterações nas entradas filho para o prefixo a seguir, consulte a tabela a seguir.
A tabela a seguir mostra mapeamentos de propriedades de azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs:
| Propriedades legadas | Propriedades modernas |
|---|---|
| spring.cloud.azure.resource-group | spring.cloud.azure.eventhubs.resource.resource-group |
| spring.cloud.azure.eventhub.namespace | spring.cloud.azure.eventhubs.namespace |
| spring.cloud.azure.eventhub.connection-string | spring.cloud.azure.eventhubs.connection-string |
| spring.cloud.azure.eventhub.checkpoint-storage-account | spring.cloud.azure.eventhubs.processor.checkpoint-store.nome-da-conta |
| spring.cloud.azure.eventhub.checkpoint-access-key | spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key |
| spring.cloud.azure.eventhub.checkpoint-container | spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-tempo de espera | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-tempo de espera |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval |
| spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position | spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position |
Observação
O tipo de valor da configuração start-position também é alterado de um enum de com.azure.spring.integration.core.api.StartPosition para um map de StartPositionProperties para cada partição. Assim, a chave é o ID da partição, e o valor é de com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties que inclui propriedades de deslocamento, número de sequência, data enfileirada e se inclusive.
Exemplos de migração de configuração
Para usar a connection string para autenticação e migrar as propriedades acima mencionadas, as alterações de configuração são listadas da seguinte forma:
Configuração herdada:
spring:
cloud:
azure:
eventhub:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
stream:
eventhub:
bindings:
<binding-name>:
consumer:
max-batch-size: ${AZURE_MAX_BATCH_SIZE}
max-wait-time: ${AZURE_MAX_WAIT_TIME}
checkpoint-mode: ${AZURE_CHECKPOINT_MODE}
checkpoint-count: ${AZURE_CHECKPOINT_COUNT}
checkpoint-interval: ${AZURE_CHECKPOINT_INTERVAL}
start-position: EARLIEST
Configuração moderna:
spring:
cloud:
azure:
eventhubs:
connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
processor:
checkpoint-store:
container-name: ${AZURE_STORAGE_CONTAINER_NAME}
account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
stream:
eventhubs:
bindings:
<binding-name>:
consumer:
batch:
max-size: ${AZURE_MAX_BATCH_SIZE}
max-wait-time: ${AZURE_MAX_WAIT_TIME}
checkpoint:
mode: ${AZURE_CHECKPOINT_MODE}
count: ${AZURE_CHECKPOINT_COUNT}
interval: ${AZURE_CHECKPOINT_INTERVAL}
initial-partition-event-position:
0:
offset: earliest
1:
sequence-number: 100
2:
enqueued-date-time: 2022-01-12T13:32:47.650005Z
4:
inclusive: false
Observação
A Microsoft recomenda o uso do fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento, como para bancos de dados, caches, mensagens ou serviços de IA, requer um grau muito alto de confiança no aplicativo e traz riscos não presentes em outros fluxos. Use esse fluxo somente quando opções mais seguras, como identidades gerenciadas para conexões sem senha ou sem chave, não forem viáveis. Para operações de máquina local, prefira identidades de usuário para conexões sem senha ou sem chave.
Se usar princípios de segurança em vez de strings de ligação, em versões anteriores à 4.0 a aplicação irá primeiro ligar-se ao Azure Resource Manager (ARM) com o principal de segurança fornecido, e depois recuperar a connection string do namespace especificado com ARM. No final, a aplicação utiliza a connection string recuperada para se ligar ao Azure Event Hubs. Desta forma, o principal de segurança fornecido deve receber o papel Contribuidor para recuperar o espaço de nomes Azure Event Hubs associado.
Para o Azure Spring Apps 4.0, fornecemos duas formas de tirar partido dos princípios de segurança para autenticação. Um ainda está usando os principais para se conectar ao ARM e recuperar as cadeias de conexão onde a função Contributor é necessária para os principais. A outra utiliza princípios de segurança para autenticar no Microsoft Entra ID e depois ligar-se diretamente ao Azure Event Hubs. Nesse caso, a função Contributor não é mais necessária, enquanto outras funções relacionadas a Data são necessárias para operações de mensagens. Para garantir que o principal de segurança recebeu a permissão suficiente para aceder ao recurso Azure, veja Autorizar acesso com Microsoft Entra ID.
Para autenticação baseada em ARM, tomando a entidade de serviço como exemplo, a migração de configuração é listada da seguinte forma, onde a função atribuída não deve ser alterada:
Configuração herdada:
spring:
cloud:
azure:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
tenant-id: <tenant>
resource-group: ${EVENTHUB_RESOURCE_GROUP}
eventhub:
namespace: ${EVENTHUB_NAMESPACE}
Observação
Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a secção Usou o ponto de extremidade errado (contas pessoais e de organização) na secção Erro AADSTS50020 - A conta de utilizador do provedor de identidade não existe no inquilino. Para informações sobre como converter a sua aplicação de inquilino único, consulte Converter aplicação de inquilino único para multiinquilino em Microsoft Entra ID.
Configuração moderna, são necessárias propriedades para o ID de subscrição do Azure e o grupo de recursos:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
eventhubs:
namespace: ${EVENTHUB_NAMESPACE}
resource:
resource-group: ${RESOURCE_GROUP}
Observação
Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a secção Usou o ponto de extremidade errado (contas pessoais e de organização) na secção Erro AADSTS50020 - A conta de utilizador do provedor de identidade não existe no inquilino. Para informações sobre como converter a sua aplicação de inquilino único, consulte Converter aplicação de inquilino único para multiinquilino em Microsoft Entra ID.
Também pode migrar para autenticar e autorizar diretamente com o Microsoft Entra ID sem desviar para o ARM. Certifique-se de conceder a entidade de segurança necessária Data funções para operações de mensagens. Os exemplos de configuração da entidade de serviço e da identidade gerenciada estão listados da seguinte forma:
Com uma entidade de serviço
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Observação
Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a secção Usou o ponto de extremidade errado (contas pessoais e de organização) na secção Erro AADSTS50020 - A conta de utilizador do provedor de identidade não existe no inquilino. Para informações sobre como converter a sua aplicação de inquilino único, consulte Converter aplicação de inquilino único para multiinquilino em Microsoft Entra ID.
Com uma identidade gerenciada
spring: cloud: azure: credential: managed-identity-enabled: true client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity eventhubs: namespace: ${EVENTHUB_NAMESPACE}
Alterações na API
A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs.
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.api.reator.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.core.EventHubHeaders | com.azure.spring.messaging.eventhubs.support.EventHubsHeaders |
De azure-spring-cloud-stream-binder-servicebus-* para spring-cloud-azure-stream-binder-servicebus
Este guia destina-se a ajudar na migração para spring-cloud-azure-stream-binder-servicebus da versão 2 do azure-spring-cloud-stream-binder-servicebus-queue ou azure-spring-cloud-stream-binder-servicebus-topic.
Para obter informações gerais, use os seguintes links:
- Para obter uma visão geral das alterações na versão 4.0, consulte as seções
Introdução eBenefícios da migração. - Para saber mais sobre as alterações de estratégia na nomenclatura do projeto, consulte a seção
Alterações de nomenclatura. - Para aprender a usar uma BOM para todas as bibliotecas de Azure Spring Cloud, consulte a secção BOM.
- Para aprender a lidar com autenticação no Spring Cloud Azure 4.0, consulte a secçã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
Configurações globais.
Alterações na configuração do SDK
Importante
As bibliotecas de fichários legados são azure-spring-cloud-stream-binder-servicebus-queue e azure-spring-cloud-stream-binder-servicebus-topic, e agora são fundidas em uma spring-cloud-azure-stream-binder-servicebus.
Importante
O tipo de aglutinante é combinado de servicebus-queue e servicebus-topic como servicebus.
A tabela a seguir lista as novas propriedades de configuração do spring-cloud-azure-stream-binder-servicebus:
| Propriedades modernas | Descrição |
|---|---|
| spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type | Se você usar a função de envio, precisará definir o tipo de entidade, que pode ser definido como tópico ou fila. |
A tabela a seguir mostra os mapeamentos de propriedades de azure-spring-cloud-stream-binder-servicebus-* para spring-cloud-azure-stream-binder-servicebus:
| Propriedades legadas | Propriedades modernas |
|---|---|
| spring.cloud.azure.resource-group | spring.cloud.azure.servicebus.resource.resource-group |
| spring.cloud.azure.servicebus.transport-type | spring.cloud.azure.servicebustipo .client.transport |
| spring.cloud.azure.servicebus.retry-options.retry-mode | spring.cloud.azure.servicebus.retry.mode |
| spring.cloud.azure.servicebus.retry-options.max-retries | spring.cloud.azure.servicebus.retry.exponential.max-retries ou spring.cloud.azure.servicebus.retry.fixed.max-retries, deve ser configurado dependendo spring.cloud.azure.servicebus.retry.mode= fixo ou exponencial |
| spring.cloud.azure.servicebus.retry-options.delay | spring.cloud.azure.servicebus.retry.exponential.base-delay ou spring.cloud.azure.servicebus.retry.fixed.delay, deve ser configurado dependendo de spring.cloud.azure.servicebus.retry.mode= fixo ou exponencial |
| spring.cloud.azure.servicebus.retry-options.max-delay | spring.cloud.azure.servicebus.retry.exponential.max-delay |
| spring.cloud.azure.servicebus.retry-options.try-timeout | spring.cloud.azure.servicebus.retry.try-timeout |
| spring.cloud.stream.servicebus.queue.bindings.* | spring.cloud.stream.servicebus.bindings.* |
| spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.simultaneidade | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
| spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.modo de ponto de verificação | spring.cloud.stream.servicebus.bindings.binding-name.consumer. de preenchimento automático |
| spring.cloud.stream.servicebus.topic.bindings.* | spring.cloud.stream.servicebus.bindings.* |
| spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.simultaneidade | spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls |
| spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.modo de ponto de verificação | spring.cloud.stream.servicebus.bindings.binding-name.consumer. de preenchimento automático |
Observação
A propriedade concurrency será substituída por maxConcurrentSessions quando sessionsEnabled estiver true e maxConcurrentCalls quando sessionsEnabled estiver false.
Observação
Ativar o preenchimento automático é igual a RECORD modo de ponto de verificação e, ao contrário, ao modo MANUAL.
Exemplos de migração de configuração
Configuração herdada, tomando a fila como exemplo:
spring:
cloud:
azure:
servicebus:
connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
stream:
function:
definition: consume;supply
bindings:
consume-in-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
supply-out-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
servicebus:
queue:
bindings:
consume-in-0:
consumer:
checkpoint-mode: MANUAL
Configuração moderna:
spring:
cloud:
azure:
servicebus:
connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
stream:
function:
definition: consume;supply
bindings:
consume-in-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
supply-out-0:
destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
servicebus:
bindings:
consume-in-0:
consumer:
auto-complete: false
supply-out-0:
producer:
entity-type: queue #set as topic if needed
Observação
A Microsoft recomenda o uso do fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento, como para bancos de dados, caches, mensagens ou serviços de IA, requer um grau muito alto de confiança no aplicativo e traz riscos não presentes em outros fluxos. Use esse fluxo somente quando opções mais seguras, como identidades gerenciadas para conexões sem senha ou sem chave, não forem viáveis. Para operações de máquina local, prefira identidades de usuário para conexões sem senha ou sem chave.
Se usar princípios de segurança em vez de strings de ligação, em versões anteriores à 4.0 a aplicação irá primeiro ligar-se ao Azure Resource Manager (ARM) com o principal de segurança fornecido, e depois recuperar a connection string do namespace especificado com ARM. No final, a aplicação utiliza a connection string recuperada para se ligar ao Azure Service Bus. Desta forma, o principal de segurança fornecido deve receber o papel Contribuidor para recuperar o espaço de nomes Azure Service Bus associado.
Para o Azure Spring Apps 4.0, fornecemos duas formas de tirar partido dos princípios de segurança para autenticação. Um ainda está usando os principais para se conectar ao ARM e recuperar as cadeias de conexão onde a função Contributor é necessária para os principais. O outro utiliza princípios de segurança para autenticar no Microsoft Entra ID e depois ligar-se diretamente ao Azure Service Bus. Nesse caso, a função Contributor não é mais necessária, enquanto outras funções relacionadas a Data são necessárias para operações de mensagens. Para garantir que o principal de segurança recebeu a permissão suficiente para aceder ao recurso Azure, veja Autorizar acesso com Microsoft Entra ID.
Para autenticação baseada em ARM, tomando a entidade de serviço como exemplo, a migração de configuração é listada da seguinte forma, onde a função atribuída não deve ser alterada:
Configuração herdada:
spring:
cloud:
azure:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
tenant-id: <tenant>
resource-group: ${SERVICEBUS_RESOURCE_GROUP}
servicebus:
namespace: ${SERVICEBUS_NAMESPACE}
Observação
Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a secção Usou o ponto de extremidade errado (contas pessoais e de organização) na secção Erro AADSTS50020 - A conta de utilizador do provedor de identidade não existe no inquilino. Para informações sobre como converter a sua aplicação de inquilino único, consulte Converter aplicação de inquilino único para multiinquilino em Microsoft Entra ID.
Configuração moderna, são necessárias propriedades para o ID de subscrição do Azure e o grupo de recursos:
spring:
cloud:
azure:
credential:
client-id: ${AZURE_CLIENT_ID}
client-secret: ${AZURE_CLIENT_SECRET}
profile:
tenant-id: <tenant>
subscription-id: ${AZURE_SUBSCRIPTION_ID}
servicebus:
namespace: ${SERVICEBUS_NAMESPACE}
resource:
resource-group: ${SERVICEBUS_RESOURCE_GROUP}
Observação
Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a secção Usou o ponto de extremidade errado (contas pessoais e de organização) na secção Erro AADSTS50020 - A conta de utilizador do provedor de identidade não existe no inquilino. Para informações sobre como converter a sua aplicação de inquilino único, consulte Converter aplicação de inquilino único para multiinquilino em Microsoft Entra ID.
Também pode migrar para autenticar e autorizar diretamente com o Microsoft Entra ID sem desviar para o ARM. Certifique-se de conceder a entidade de segurança necessária Data funções para operações de mensagens. Os exemplos de configuração da entidade de serviço e da identidade gerenciada estão listados da seguinte forma:
Com uma entidade de serviço
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Observação
Os valores permitidos para tenant-id são: common, organizations, consumersou o ID do locatário. Para obter mais informações sobre esses valores, consulte a secção Usou o ponto de extremidade errado (contas pessoais e de organização) na secção Erro AADSTS50020 - A conta de utilizador do provedor de identidade não existe no inquilino. Para informações sobre como converter a sua aplicação de inquilino único, consulte Converter aplicação de inquilino único para multiinquilino em Microsoft Entra ID.
Com uma identidade gerenciada
spring: cloud: azure: credential: managed-identity-enabled: true client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity servicebus: namespace: ${SERVICEBUS_NAMESPACE}
Alterações na API
- Solte o cabeçalho da mensagem
AzureHeaders.RAW_ID. UtilizeServiceBusMessageHeaders.MESSAGE_IDem substituição.
A tabela a seguir mostra os mapeamentos de classe de azure-spring-cloud-stream-binder-eventhubs para spring-cloud-azure-stream-binder-eventhubs.
| Classe Legacy | Classe moderna |
|---|---|
| com.azure.spring.integration.core.AzureHeaders | com.azure.spring.messaging.AzureHeaders |
| com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders | com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders |
| com.azure.spring.integration.core.api.Checkpointer | com.azure.spring.messaging.checkpoint.Checkpointer |
azure-spring-cloud-messaging
A biblioteca com.azure.spring:azure-spring-cloud-messaging não está pronta para a versão 4.0. A função de anotações de ouvinte está sendo redesenhada, portanto, as anotações @AzureMessageListener, @AzureMessageListenerse @EnableAzureMessaging não são suportadas no momento.