Ler em inglês

Compartilhar via


O que é a Grade de Eventos do Azure?

A Grade de Eventos do Azure é um serviço de distribuição de mensagens de publicação/assinatura altamente escalonável e totalmente gerenciado que oferece padrões flexíveis de consumo de mensagens por meio dos protocolos MQTT e HTTP. Com a Grade de Eventos do Azure, você pode criar pipelines de dados com os dados do dispositivo, integrar aplicativos e criar arquiteturas sem servidor controladas por eventos.

A Grade de Eventos permite que os clientes publiquem e assinem mensagens por meio dos protocolos MQTT v3.1.1 e v5.0 para dar suporte a soluções de IoT (Internet das Coisas). Por meio do HTTP, a Grade de Eventos permite que você crie soluções controladas por eventos em que um serviço de editor anuncia as alterações de estado do sistema (eventos) aos aplicativos assinantes. A Grade de Eventos pode ser configurada para enviar eventos aos assinantes (entrega push) ou os assinantes podem se conectar à Grade de Eventos para ler os eventos (entrega pull). A Grade de Eventos dá suporte à especificação CloudEvents 1.0 para fornecer interoperabilidade entre sistemas.

Diagrama de alto nível da Grade de Eventos que mostra os editores e os assinantes usando os protocolos MQTT e HTTP.

Principais recursos

Aqui estão os dois principais recursos da Grade de Eventos do Azure:

Mensagens MQTT. Os dispositivos e aplicativos IoT podem se comunicar entre si por meio do MQTT. A Grade de Eventos também pode ser usada para rotear mensagens MQTT para serviços do Azure ou pontos de extremidade personalizados para análise, visualização ou armazenamento de dados adicionais. Essa integração aos serviços do Azure permite que você crie pipelines de dados que começam com a ingestão de dados dos seus dispositivos IoT.

Distribuição de dados usando os modos de entrega push e pull. A qualquer momento em um pipeline de dados, os aplicativos HTTP podem consumir as mensagens usando APIs de push ou pull. A fonte dos dados pode incluir dados de clientes MQTT, mas também inclui as seguintes fontes de dados que enviam eventos via HTTP:

  • Serviços do Azure
  • Seus aplicativos personalizados
  • Sistemas (SaaS) de parceiros externos

O mecanismo de entrega por push da Grade de Eventos envia dados para destinos que incluem seus próprios webhooks de aplicativos e serviços do Azure. Vamos examinar esses dois recursos em detalhes:

Mensagens MQTT

A Grade de Eventos permite que os clientes se comuniquem em nomes de tópicos MQTT personalizados usando um modelo de mensagens de publicação/assinatura. A Grade de Eventos dá suporte aos clientes que publicam e assinam mensagens via MQTT v3.1.1, MQTT v3.1.1 via WebSockets, MQTT v5 e MQTT v5 via WebSockets. A Grade de Eventos permite que você envie mensagens MQTT à nuvem para análise de dados, armazenamento e visualizações, entre outros casos de uso.

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 a funcionalidade do agente MQTT da Grade de Eventos na nuvem. O agente MQTT da Internet das Coisas do Azure é um novo agente MQTT distribuído para computação de borda, em execução em clusters do Kubernetes habilitados para ARC. Agora está disponível em versão prévia pública como parte das Operações do Azure IoT.

O recurso de agente MQTT na Grade de Eventos é ideal para a implementação de cenários automotivos e de mobilidade, entre outros. Confira a arquitetura de referência para saber como criar soluções seguras e escalonáveis para conectar milhões de veículos à nuvem, usando os serviços de mensagens e análise de dados do Azure.

Diagrama de alto nível da Grade de Eventos que mostra a comunicação MQTT bidirecional com os clientes editores e assinantes.

Aqui estão alguns destaques do suporte a mensagens MQTT na Grade de Eventos do Azure:

  • Suporte a MQTT v3.1.1 e MQTT v5.0 – Use qualquer biblioteca de clientes MQTT de código aberto para se comunicar com o serviço.
  • Suporte a tópicos personalizados com curingas – Use sua própria estrutura de tópicos.
  • Modelo de mensagem de publicação/assinatura - Comunique-se de forma eficiente usando padrões de mensagens um-para-muitos, muitos-para-um e um-para-um.
  • Integração com a nuvem interna - Direcione suas mensagens MQTT para serviços do Azure ou webhooks personalizados para processamento adicional.
  • Modelo de controle de acesso flexível e granular – Agrupe clientes e tópicos para simplificar o gerenciamento de controle de acesso e use o suporte a variáveis em modelos de tópicos para um controle de acesso mais granular.
  • Métodos de autenticação do agente MQTT – A Autentificação por certificado X.509 é o padrão de autenticação do setor para dispositivos IoT, a autenticação do Microsoft Entra ID é o padrão de autenticação do Azure para aplicativos e a autenticação OAuth 2.0 (Token Web JSON) fornece uma opção leve, segura e flexível para clientes MQTT que não estão provisionados no Azure.
  • Suporte a TLS 1.2 e TLS 1.3 – Proteja a comunicação do cliente usando protocolos de criptografia robustos.
  • Suporte a várias sessões - Conecte seus aplicativos com várias sessões ativas para garantir a confiabilidade e a escalabilidade.
  • MQTT sobre WebSockets - Habilite a conectividade para clientes em ambientes com restrições de firewall.
  • Nomes de domínio personalizados - Permite que os usuários atribuam seus próprios nomes de domínio aos pontos de extremidade MQTT do namespace da Grade de Eventos, melhorando a segurança e simplificando a configuração do cliente.
  • 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.

Para obter mais informações sobre o agente MQTT, consulte os seguintes artigos:

Mensagens de evento (HTTP)

Usando o HTTP, a Grade de Eventos dá suporte às entregas push e pull de eventos. Com a entrega por push, você define um destino em uma assinatura de evento para a qual a Grade de Eventos envia eventos. Com a entrega pull, os aplicativos assinantes se conectam à Grade de Eventos para consumir os eventos. A entrega de pull tem suporte para tópicos em um namespace da Grade de Eventos.

Diagrama de alto nível que mostra uma entrega push e uma entrega pull com os tipos de recursos envolvidos.

Manipuladores de eventos

Na entrega por push, uma assinatura de evento é um recurso de configuração genérico que permite definir o manipulador de eventos ou o destino para o qual os eventos são enviados usando a entrega por push. Por exemplo, você pode enviar dados para um Webhook, Função do Azure ou Hubs de Eventos. Para obter uma lista completa dos manipuladores de eventos compatíveis, consulte:

Entrega por push vs. entrega por pull

As diretrizes gerais a seguir vão para ajudar você a decidir quando usar a entrega push ou pull.

Entrega pull

  • Você precisa obter controle completo sobre quando os eventos serão recebidos. Por exemplo, seu aplicativo talvez não fique online o tempo todo, não seja estável o suficiente ou você processa os dados em determinados horários.
  • Você precisa obter controle completo sobre o consumo de eventos. Por exemplo, um serviço downstream ou uma camada no seu aplicativo consumidor tem um problema que impede que você processe os eventos. Nesse caso, a API de entrega pull permite que o aplicativo consumidor libere um evento já lido novamente para o agente, de modo que ele possa ser entregue posteriormente.
  • Você deseja usar links privados ao receber eventos, o que é possível apenas com a entrega de pull, não com a entrega de push.
  • Você não tem a capacidade de expor um ponto de extremidade e usar a entrega push, mas pode se conectar à Grade de Eventos para consumir eventos.

Entrega push

  • Você deseja evitar a sondagem constante para determinar se ocorreu uma alteração de estado do sistema. Você prefere usar a Grade de Eventos para enviar eventos para você no momento em que as alterações de estado ocorrem.
  • Você tem um aplicativo que não pode fazer chamadas de saída. Por exemplo, sua organização talvez esteja preocupada com a exfiltração dos dados. No entanto, seu aplicativo pode receber eventos por meio de um ponto de extremidade público.

Aqui estão alguns destaques do modelo HTTP:

  • Modelo flexível de consumo de eventos – ao usar HTTP, consuma os eventos usando o modo de entrega push ou pull.
  • Eventos do sistema – Ative seus serviços rapidamente com os eventos internos do serviço do Azure.
  • Seus eventos personalizados – Use a Grade de Eventos para rotear, filtrar e entregar de modo confiável eventos personalizados por meio do seu aplicativo.
  • Eventos de parceiros – Assine os eventos do provedor de SaaS de parceiro e processe-os no Azure.
  • Filtragem avançada – Filtre o tipo de evento ou outros atributos de evento para garantir que os manipuladores de eventos ou os aplicativos consumidores recebam apenas os eventos relevantes.
  • Confiabilidade – A entrega push conta com um mecanismo de repetição de 24 horas com retirada exponencial para garantir que os eventos sejam entregues. Se você usar a entrega por pull, sua aplicação terá controle total sobre o consumo de eventos.
  • Alta taxa de transferência – Crie soluções integradas de alto volume com a Grade de Eventos.
  • Nomes de domínio personalizados - Permite que os usuários atribuam seus próprios nomes de domínio aos pontos de extremidade HTTP do namespaces da Grade de Eventos, aumentando a segurança e simplificando a configuração do cliente.

Para obter mais informações, consulte os seguintes artigos:

Casos de uso

Para obter uma lista de casos de uso em que você usar a Grade de Eventos do Azure, consulte Casos de uso.

Regiões com suporte

Aqui está a lista de regiões em que os novos recursos de tópicos de namespace e agente MQTT estão disponíveis:

Region Região Região Region
Leste da Austrália Sudeste da Austrália Austrália Central Austrália Central 2
Sul do Brasil Sudeste do Brasil Canadá Central Leste do Canadá
Índia Central Centro dos EUA Leste da Ásia Leste dos EUA
Leste dos EUA 2 Oeste dos EUA França Central Sul da França
Norte da Alemanha Centro-Oeste da Alemanha Israel Central Norte da Itália
Leste do Japão Oeste do Japão Coreia Central Sul da Coreia
México Central Centro-Norte dos EUA Norte da Europa Leste da Noruega
Polônia Central Oeste da África do Sul Norte da África do Sul Centro-Sul dos Estados Unidos
Sul da Índia Sudeste Asiático Espanha Central Suécia Central
Sul da Suécia Norte da Suíça Oeste da Suíça Norte dos EAU
EAU Central Sul do Reino Unido Oeste do Reino Unido Europa Ocidental
Oeste dos EUA 2 Oeste dos EUA 3 Centro-Oeste dos EUA