Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial demonstra como usar o Spring Boot Starter para Barramento de Serviço do Azure JMS para enviar mensagens e receber mensagens de Barramento de Serviço queues e topics.
Azure fornece uma plataforma de mensagens assíncrona chamada Barramento de Serviço do Azure ("Barramento de Serviço") baseada no padrão Advanced Message Queueing Protocol 1.0 ("AMQP 1.0"). Você pode usar o Barramento de Serviço no conjunto de plataformas com suporte do Microsoft Azure.
O Spring Boot Starter para Barramento de Serviço do Azure JMS fornece integração do Spring JMS ao Barramento de Serviço.
O vídeo a seguir descreve como integrar aplicativos Spring JMS com Barramento de Serviço do Azure usando o JMS 2.0.
Neste tutorial, incluímos dois métodos de autenticação: autenticação Microsoft Entra e autenticação SAS (Shared Access Signatures). A guia Passwordless mostra a autenticação Microsoft Entra e a guia Conexão mostra a autenticação SAS.
autenticação do Microsoft Entra é um mecanismo que permite a conexão ao Barramento de Serviço do Azure JMS utilizando identidades definidas no Microsoft Entra ID. Com Microsoft Entra autenticação, você pode gerenciar identidades de usuário de banco de dados e outras serviços Microsoft em um local central, o que simplifica o gerenciamento de permissões.
A autenticação SAS usa a cadeia de conexão do namespace do Barramento de Serviço do Azure para o acesso delegado ao Barramento de Serviço JMS. Se você optar por usar assinaturas de acesso compartilhado como credenciais, precisará gerenciar a cadeia de conexão por conta própria.
Pré-requisitos
Uma assinatura Azure – criar uma gratuitamente.
Java Development Kit (JDK) versão 8 ou superior.
Apache Maven, versão 3.2 ou superior.
Uma fila ou tópico no Barramento de Serviço do Azure. Se você não tiver um, consulte Use o portal do Azure para criar um namespace do Barramento de Serviço e uma fila ou Use o portal do Azure para criar um tópico do Barramento de Serviço e assinaturas para o tópico.
Um aplicativo Spring Boot. Caso não tiver um, crie um projeto Maven com o Spring Initializr. Selecione Maven Project e, em Dependencies, adicione a dependência Spring Web e selecione Java versão 8 ou superior.
Importante
É necessário o Spring Boot versão 2.5 ou superior para concluir as etapas neste tutorial.
Enviar e receber mensagens de Barramento de Serviço do Azure
Com uma fila ou um tópico para Barramento de Serviço do Azure, você pode enviar e receber mensagens usando o Spring Cloud Barramento de Serviço do Azure JMS.
Para instalar o módulo JMS Starter do Spring Cloud Barramento de Serviço do Azure, adicione as seguintes dependências ao arquivo pom.xml:
A Lista de Materiais do Spring Cloud Azure (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.2.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Observação
Se você estiver usando o Spring Boot 4.0.x, defina a
spring-cloud-azure-dependenciesversão como7.2.0.Se você estiver usando o Spring Boot 3.5.x, defina a
spring-cloud-azure-dependenciesversão como6.2.0.Se você estiver usando o Spring Boot 3.1.x-3.5.x, defina a
spring-cloud-azure-dependenciesversão como5.25.0.Se você estiver usando o Spring Boot 2.x, certifique-se de definir a
spring-cloud-azure-dependenciesversão como4.20.0.Esta lista de materiais (BOM) deve ser configurada na
<dependencyManagement>seção do arquivo pom.xml. Isso garante que todas as dependências de Azure do Spring Cloud estejam usando a mesma versão.Para obter mais informações sobre a versão usada para este BOM, consulte Which Version of Spring Cloud Azure Should I Use.
O componente do Spring Cloud Barramento de Serviço do Azure JMS Starter:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId> </dependency>
Codificar o aplicativo
Use as etapas a seguir para configurar seu aplicativo para utilizar uma fila ou um tópico do Barramento de Serviço para enviar e receber mensagens.
Configure as credenciais de Barramento de Serviço adicionando as seguintes propriedades ao arquivo application.properties.
Observação
Barramento de Serviço do Azure JMS dá suporte ao uso de Microsoft Entra ID para autorizar solicitações aos recursos do Barramento de Serviço. Com o Microsoft Entra ID, você pode usar controle de acesso baseado em funções do Azure (Azure RBAC) para conceder permissões a um principal de segurança, que pode ser um usuário ou uma entidade de serviço de aplicativo.
Importante
Antes de começar, verifique se você atribuiu a função Barramento de Serviço do Azure Data Owner à conta Microsoft Entra que você está usando no momento. Para obter mais informações, consulte Atribuir funções do Azure usando o portal do Azure.
spring.jms.servicebus.namespace=<ServiceBusNamespace> spring.jms.servicebus.pricing-tier=<ServiceBusPricingTier> spring.jms.servicebus.passwordless-enabled=true spring.jms.listener.receive-timeout=60000A tabela seguinte descreve os campos da configuração:
Campo Descrição spring.jms.servicebus.namespaceEspecifique o namespace obtido em sua instância de serviço Barramento de Serviço no portal Azure. spring.jms.servicebus.pricing-tierEspecifique o tipo de preço de seu barramento de serviço. Os valores com suporte são premiumestandard. A camada Premium usa Java JMS (Serviço de Mensagem) 2.0, enquanto a camada padrão usa o JMS 1.1 para interagir com Barramento de Serviço do Azure.spring.jms.servicebus.passwordless-enabledEspecifique se deseja usar sem senha. spring.jms.listener.receive-timeoutPor padrão, o valor de tempo limite de recebimento é 1000. Recomendamos que você o defina como 60000 Adicionar
@EnableJmspara habilitar o suporte para terminais anotados do ouvinte JMS. UseJmsTemplatepara enviar mensagens e@JmsListenerpara receber mensagens, conforme mostrado no exemplo a seguir:import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.jms.annotation.EnableJms; import org.springframework.boot.CommandLineRunner; import org.springframework.jms.annotation.JmsListener; import org.springframework.jms.core.JmsTemplate; @SpringBootApplication @EnableJms public class ServiceBusJMSQueueApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(ServiceBusJMSQueueApplication.class); private static final String QUEUE_NAME = "<QueueName>"; @Autowired private JmsTemplate jmsTemplate; public static void main(String[] args) { SpringApplication.run(ServiceBusJMSQueueApplication.class, args); } @Override public void run(String... args) { LOGGER.info("Sending message"); jmsTemplate.convertAndSend(QUEUE_NAME, "Hello World"); } @JmsListener(destination = QUEUE_NAME, containerFactory = "jmsListenerContainerFactory") public void receiveMessage(String message) { LOGGER.info("Message received: {}", message); } }Substitua
<QueueName>pelo seu próprio nome de fila configurado no namespace Barramento de Serviço.Dica
Neste tutorial, não há operações de autenticação nas configurações ou no código. No entanto, conectar-se a serviços Azure requer autenticação. Para concluir a autenticação, você precisa usar Azure Identity. O Spring Cloud Azure usa
DefaultAzureCredential, que a biblioteca de identidades do Azure fornece para ajudá-lo a obter credenciais sem alterações de código.DefaultAzureCredentialdá suporte a vários métodos de autenticação e determina qual método usar no runtime. Essa abordagem habilita seu aplicativo a usar diferentes métodos de autenticação em diferentes ambientes, como ambientes locais e de produção, sem implementar código específico do ambiente. Para obter mais informações, consulte DefaultAzureCredential.Para concluir a autenticação em ambientes de desenvolvimento locais, você pode usar CLI do Azure, Visual Studio Code, PowerShell ou outros métodos. Para obter mais informações, consulte Autenticação do Azure em ambientes de desenvolvimento Java. Para concluir a autenticação em ambientes de hospedagem Azure, recomendamos usar a identidade gerenciada atribuída pelo usuário. Para obter mais informações, consulte O que são identidades gerenciadas para recursos Azure?
Inicie o aplicativo. Você deverá ver
Sending messageeOlá, Mundopostados no log do aplicativo, conforme mostrado na seguinte saída de exemplo:Sending message Message received: Hello World
Implantar no Aplicativos Spring do Azure
Agora que você tem o aplicativo Spring Boot em execução localmente, é hora de movê-lo para produção. Aplicativos Spring do Azure facilita a implantação de aplicativos Spring Boot para Azure sem alterações de código. O serviço gerencia a infraestrutura dos aplicativos do Spring para que os desenvolvedores possam se concentrar no código. Aplicativos Spring do Azure fornece gerenciamento de ciclo de vida usando monitoramento e diagnóstico abrangentes, gerenciamento de configuração, descoberta de serviço, integração de CI/CD, implantações azul-verde e muito mais. Para implantar seu aplicativo em Aplicativos Spring do Azure, consulte Deploy seu primeiro aplicativo para Aplicativos Spring do Azure.