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.
A Grade de Eventos do Azure permite que os clientes MQTT (Message Queue Telemetry Transport) se comuniquem entre si e com os serviços do Azure para dar suporte às soluções de IoT (Internet das Coisas). Você pode usar o recurso do Agente MQTT da Grade de Eventos do Azure para realizar os seguintes cenários. Para obter exemplos de código que demonstram esses cenários, consulte este repositório.
- Faça ingestão da telemetria usando um padrão de mensagem muitos para um. Esse padrão permite que o aplicativo descarregue a carga de gerenciar o alto número de conexões com dispositivos para a Grade de Eventos.
- Controle os clientes MQTT usando o padrão de mensagem de solicitação-resposta (um para um). Esse padrão permite que qualquer cliente se comunique com qualquer outro cliente sem restrições, independentemente das funções dos clientes.
- Transmita alertas para uma frota de clientes usando o padrão de mensagem um para muitos. Esse padrão permite que o aplicativo publique apenas uma mensagem que o serviço replica para cada cliente interessado.
- Integre os dados dos clientes MQTT roteando as mensagens MQTT para webhooks e serviços do Azure por meio da funcionalidade Entrega push HTTP. Você pode usar essa integração aos serviços do Azure para criar pipelines de dados que começam com a ingestão de dados dos seus dispositivos IoT.
O Agente MQTT é ideal para a implementação de cenários automotivos, de mobilidade e de produção, entre outros. Para saber como criar soluções seguras e escalonáveis para conectar milhões de clientes MQTT à nuvem usando os serviços de análise de dados e sistema de mensagens do Azure, consulte as arquiteturas de referência automotiva e de produção.
Principais conceitos
Os principais conceitos a seguir estão envolvidos no recurso do Agente MQTT da Grade de Eventos.
MQTT
O MQTT é um protocolo de transporte de mensagens de publicação/assinatura que foi projetado para ambientes restritos. É o padrão popular de comunicação para cenários de IoT devido à eficiência, escalabilidade e confiabilidade. O Agente MQTT permite que os clientes publiquem e assinem mensagens por MQTT v3.1.1, MQTT v3.1.1 por WebSocket, MQTT v5 e MQTT v5 por WebSocket. A lista a seguir mostra alguns dos destaques dos recursos do Agente MQTT:
Recursos do MQTT v5:
- Last Will and Testament: notifica seus clientes MQTT com as desconexões inesperadas de outros clientes MQTT. Você pode usar esse recurso para garantir um fluxo previsível e confiável de comunicação entre os clientes MQTT durante desconexões inesperadas.
- Propriedades de usuário: permitem que você adicione pares chave-valor personalizados no cabeçalho da mensagem para fornecer mais contexto sobre a mensagem. Por exemplo, inclua a finalidade ou a origem da mensagem para que o destinatário possa processar a mensagem com eficiência.
- Padrão de solicitação-resposta: permite que os clientes aproveitem o padrão assíncrono de solicitação-resposta, especificando o tópico de resposta e a ID de correlação na solicitação para que o cliente responda às mensagens sem configuração prévia.
- Intervalo de expiração da mensagem: permite que você declare ao Agente MQTT quando desconsiderar uma mensagem que não seja mais relevante ou válida. Exemplos incluem desconsiderar comandos ou alertas obsoletos.
- Alias de tópico: ajuda os clientes a reduzir o tamanho do campo de tópico, tornando a transferência de dados menos cara.
- Tamanho máximo da mensagem: permite que os clientes controlem o tamanho máximo da mensagem que podem processar do servidor.
- Tamanho máximo de recebimento permite que os clientes controlem a taxa de mensagens dependendo das funcionalidades, como funcionalidades de armazenamento e velocidade de processamento.
- Início Limpo e a Expiração da Sessão permitem que os clientes otimizem a confiabilidade e a segurança da sessão preservando as informações de assinatura e as mensagens do cliente para um intervalo de tempo configurável.
- Confirmações negativas: permitem que os clientes reajam com eficiência a diferentes códigos de erro.
- Pacotes de desconexão enviados pelo servidor: permitem que os clientes processem as desconexões com eficiência.
- Retenção do MQTT: garante que o agente armazene a última mensagem publicada em um tópico e a entregue automaticamente a novos assinantes. Esse recurso permite que os dispositivos recebam instantaneamente o estado conhecido mais recente sem aguardar a próxima atualização. Essa funcionalidade permite uma sincronização de estado mais rápida e confiável em sistemas IoT.
Recursos do MQTT v3.1.1:
- Last Will and Testament: notifica seus clientes MQTT com as desconexões inesperadas de outros clientes MQTT. Você pode usar esse recurso para garantir um fluxo previsível e confiável de comunicação entre os clientes MQTT durante desconexões inesperadas.
- Sessões persistentes: garantem a confiabilidade preservando as informações de assinatura e as mensagens do cliente quando um cliente se desconecta.
- QoS 0 e 1 fornecem aos clientes controle sobre a eficiência e a confiabilidade da comunicação.
- Retenção do MQTT: garante que o agente armazene a última mensagem publicada em um tópico e a entregue automaticamente a novos assinantes. Esse recurso permite que os dispositivos recebam instantaneamente o estado conhecido mais recente sem aguardar a próxima atualização. Essa funcionalidade permite uma sincronização de estado mais rápida e confiável em sistemas IoT.
As seções seguir detalham as diferenças atuais entre os recursos compatíveis com o Agente MQTT e as especificações do MQTT v5. Não há suporte para QoS 2.
Saiba mais sobre o Agente MQTT e as limitações atuais.
Modelo de mensagem de publicação/assinatura
O modelo de mensagem publicação/assinatura fornece uma comunicação escalonável e assíncrona aos clientes. Ele permite que os clientes descarreguem a carga de lidar com um alto número de conexões e mensagens para o serviço. Por meio do modelo de mensagem publicação/assinatura, os clientes podem se comunicar com eficiência usando os padrões de mensagens um para muitos, muitos para um e um para um:
- Um para muitos: permite que os clientes publiquem apenas uma mensagem que o serviço replica para cada cliente interessado.
- Muitos para um: permite que os clientes descarreguem o ônus de gerenciar o grande número de conexões com o Agente MQTT.
- Um para um: permite que qualquer cliente se comunique com qualquer outro cliente sem restrições, independentemente das funções dos clientes.
Namespace
O namespace da Grade de Eventos é um contêiner de gerenciamento para os recursos que dão suporte à funcionalidade do Agente do MQTT, acompanhado dos recursos que dão suporte à funcionalidade de entrega pull. Seu cliente MQTT pode se conectar ao agente MQTT e publicar/assinar mensagens. O Agente MQTT autentica seus clientes, autoriza solicitações de publicação e assinatura e encaminha mensagens para clientes interessados. Saiba mais sobre o conceito de namespace.
Clientes
Os clientes consultam os dispositivos IoT ou os aplicativos que publicam e assinam mensagens MQTT.
Os dispositivos IoT são objetos físicos conectados à Internet usados para transmitir a telemetria e receber comandos. Esses dispositivos são sensores, dispositivos, computadores ou outros objetos equipados com sensores incorporados e software. Os sensores e os programas de software permitem que eles se comuniquem e interajam entre si e com o ambiente ao redor. O valor dos dispositivos IoT está na capacidade deles de fornecerem dados e insights em tempo real, permitindo que as empresas e as pessoas tomem decisões informadas e aprimorem a eficiência e a produtividade.
Os aplicativos IoT são programas de software projetados para interagir e processar dados de dispositivos IoT. Normalmente, eles incluem componentes como coleta, processamento, armazenamento, visualização e análise de dados. Esses aplicativos permitem que os usuários monitorem e controlem dispositivos conectados, automatizem tarefas e obtenham insights dos dados gerados pelos dispositivos IoT.
Autenticação de cliente
A Grade de Eventos tem um registro de clientes que armazena informações sobre os clientes com permissão para se conectar a ela. Para que um cliente se conecte, precisa haver uma entrada para ele no registro de clientes. Quando um cliente se conecta ao Agente MQTT, ele precisa se autenticar com o Agente MQTT com base nas credenciais armazenadas no registro de identidade. O Agente MQTT dá suporte para os seguintes mecanismos de autenticação de cliente:
- Autenticação de certificado X.509, que é o padrão de autenticação do setor em dispositivos IoT.
- Autenticação do Microsoft Entra ID é o padrão de autenticação do Azure para aplicativos. Saiba mais sobre a Autenticação de cliente MQTT.
- Autenticações flexíveis:
- Autenticação OAuth 2.0 JWT (Token Web JSON) fornece uma opção leve, segura e flexível para clientes MQTT que não estão provisionados no Azure.
- A autenticação personalizada do webhook permite que pontos de extremidade HTTP externos (webhooks) autentiquem conexões MQTT dinamicamente. Ele usa a validação JWT do Microsoft Entra ID para garantir o acesso seguro.
Controle de acesso
O controle de acesso é fundamental para cenários de IoT, considerando a enorme escala de ambientes de IoT e os desafios de segurança exclusivos de dispositivos restritos. A Grade de Eventos oferece o controle de acesso baseado em função por meio de um modelo de controle de acesso flexível que você pode usar para gerenciar a autorização dos clientes para publicação ou assinatura em tópicos.
Dada a enorme escala de ambientes de IoT, atribuir uma permissão a cada cliente e a cada tópico é incrivelmente monótono. O controle de acesso flexível da Grade de Eventos resolve esse desafio de escala por meio do agrupamento de clientes e tópicos em grupos de clientes e espaços de tópicos. Depois de criar grupos de clientes e espaços de tópicos, configure uma associação de permissão a fim de permitir acesso a um grupo de clientes para publicação ou assinatura em um espaço de tópico.
Os espaços de tópicos também fornecem controle de acesso granular, permitindo que você controle a autorização de cada cliente em um grupo de clientes para publicação ou assinatura em um tópico próprio. Esse controle de acesso granular é obtido por meio de variáveis em modelos de tópicos. Saiba mais sobre o controle de acesso.
Roteamento
Com a Grade de Eventos, você pode rotear suas mensagens MQTT para webhooks ou serviços do Azure para processamento adicional. Dessa forma, você pode criar soluções de ponta a ponta usando seus dados de IoT para análise de dados, armazenamento e visualizações, entre outros casos de uso. Com a configuração de roteamento, você pode enviar todas as suas mensagens MQTT de seus clientes para um tópico de namespace da Grade de Eventos ou um tópico personalizado da Grade de Eventos. Depois que as mensagens estiverem no tópico, você poderá configurar uma assinatura de evento para consumir as mensagens do tópico. Por exemplo, com essa funcionalidade, você pode usar a Grade de Eventos para rotear a telemetria dos seus dispositivos IoT para os Hubs de Eventos e, em seguida, para o Azure Stream Analytics a fim de obter insights da telemetria do dispositivo. Saiba mais sobre o roteamento.
Eventos MQTT para fluxos de eventos do Microsoft Fabric
Rotear mensagens MQTT e eventos de nuvem do Namespace da Grade de Eventos para eventstreams do Microsoft Fabric para análise em tempo real, armazenamento e visualização de dados de IoT.
Integração do agente MQTT de borda
A Grade de Eventos integra-se às Operações do Azure IoT para fazer a ponte de sua funcionalidade de Agente MQTT na borda com o recurso de Agente MQTT da Grade de Eventos na nuvem. As Operações do Azure IoT oferecem um novo Agente MQTT distribuído para computação de borda, em execução em clusters do Kubernetes habilitados para Azure Arc. Ele pode se conectar ao Agente MQTT da Grade de Eventos com a autenticação do Microsoft Entra ID usando a identidade gerenciada atribuída pelo sistema, o que simplifica o gerenciamento de credenciais. O agente MQTT fornece alta disponibilidade, escalabilidade e segurança para dispositivos e aplicativos IoT. Saiba mais sobre como conectar o Agente MQTT das Operações do Azure IoT ao Agente MQTT da Grade de Eventos.
Eventos do ciclo de vida do cliente MQTT
Eventos do ciclo de vida do cliente permitem que os aplicativos reajam a eventos sobre o status da conexão do cliente ou sobre as operações de recursos do cliente. Você pode acompanhar o status da conexão do seu cliente, reagir com uma ação de mitigação para desconexões de clientes e acompanhar o namespace ao qual seus clientes estão conectados durante failovers automatizados. Saiba mais sobre os Eventos do ciclo de vida do cliente MQTT.
Nomes de domínio personalizados
O suporte para nomes de domínio personalizados permite que os usuários atribuam seus nomes de domínio aos pontos de extremidade MQTT e HTTP do namespace da Grade de Eventos, o que aumenta a segurança e simplifica a configuração do cliente. Esse recurso ajuda as empresas a atender aos requisitos de segurança e conformidade e elimina a necessidade de modificar clientes já vinculados ao domínio. A atribuição de um nome de domínio personalizado a vários namespaces também pode ajudar a aumentar a disponibilidade, gerenciar a capacidade e lidar com a mobilidade de clientes entre regiões. Saiba mais sobre Nomes de domínios personalizados.
Retenção MQTT
Uma mensagem MQTT retida é usada para armazenar o último valor válido conhecido de um tópico no agente, garantindo que novos assinantes recebam imediatamente a mensagem mais recente sem esperar pela próxima publicação. Essa funcionalidade é especialmente útil em cenários como relatórios de estado do dispositivo, sinais de controle ou dados de configuração em que a mensagem mais recente sempre deve estar disponível para clientes durante a conexão. Para obter mais informações, confira as Suporte à retenção do MQTT no Grade de Eventos do Azure.
Publicação HTTP
A publicação HTTP permite que os aplicativos publiquem mensagens MQTT no Agente MQTT da Grade de Eventos por meio de uma solicitação HTTPS POST simples, sem manter uma sessão MQTT ativa. É mais adequado para cenários em que os clientes MQTT não são viáveis ou necessários, como funções sem servidor, serviços de nuvem ou aplicativos de back-end. A publicação HTTP permite que arquiteturas controladas por eventos injetem mensagens MQTT de forma confiável e segura. Casos de uso comuns incluem a publicação de comandos, alertas ou sinais de controle do Azure Functions, Aplicativos Lógicos do Azure ou integrações de API. Para obter mais informações, consulte Publicação HTTP de mensagens MQTT na Grade de Eventos do Azure.
Conceitos
Saiba mais sobre os conceitos do Agente MQTT na Grade de Eventos:
- Terminologia
- Autenticação do cliente
- Controle de acesso
- Suporte ao protocolo MQTT
- Roteamento de mensagens MQTT
- Eventos do ciclo de vida do cliente MQTT
Conteúdo relacionado
Saiba mais sobre o Agente MQTT e seus principais conceitos: