Partilhar via


O que é o Azure Event Grid?

A Grade de Eventos do Azure é um serviço de publicação-assinatura altamente escalável e totalmente gerenciado para distribuição de mensagens. A Grade de Eventos oferece padrões flexíveis de consumo de mensagens e usa os protocolos MQTT (Transporte de Telemetria de Enfileiramento de Mensagens) e HTTP. Com a Grade de Eventos, você pode criar pipelines de dados com dados de dispositivos, integrar aplicativos e criar arquiteturas sem servidor orientadas a eventos.

O Event Grid permite que os clientes publiquem e assinem mensagens através dos protocolos MQTT v3.1.1 e v5.0 para suportar soluções de Internet das Coisas (IoT). Através do HTTP, você pode usar a Grade de Eventos para criar soluções orientadas a eventos em que um serviço de editor anuncia suas alterações de estado do sistema (eventos) para aplicativos de assinante. Você pode configurar a Grade de Eventos para enviar eventos aos assinantes (entrega por push) ou os assinantes podem se conectar à Grade de Eventos para ler eventos (entrega pull). O Event Grid suporta a especificação CloudEvents 1.0 para fornecer interoperabilidade entre sistemas.

Diagrama que mostra editores e assinantes usando protocolos MQTT e HTTP.

Principais características

A Grelha de Eventos tem duas características principais:

Mensagens MQTT: dispositivos e aplicativos IoT podem se comunicar entre si por meio do MQTT. Você também pode usar a Grade de Eventos para rotear mensagens MQTT para serviços do Azure ou pontos de extremidade personalizados para análise, visualização ou armazenamento de dados adicionais. Usando essa integração com os serviços do Azure, você pode criar pipelines de dados que começam com a ingestão de dados de seus dispositivos IoT.

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

  • Serviços do Azure
  • As suas aplicações personalizadas
  • Sistemas de parceiros externos (software como serviço)

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. Aqui está uma olhada nesses dois recursos.

Mensagens MQTT

A Grade de Eventos permite que seus clientes se comuniquem em nomes de tópicos MQTT personalizados usando um modelo de mensagens de publicação-assinatura. A Grade de Eventos suporta clientes que publicam e assinam mensagens sobre MQTT v3.1.1, MQTT v3.1.1 sobre WebSocket, MQTT v5 e MQTT v5 sobre WebSocket.

O Event Grid também suporta dispositivos e serviços que enviam mensagens MQTT por HTTPS, o que simplifica a integração com clientes não-MQTT. O Event Grid permite enviar mensagens MQTT para a nuvem para análise de dados, armazenamento e visualizações, entre outros casos de uso. Esta funcionalidade está atualmente em pré-visualização.

A Grade de Eventos integra-se às Operações IoT do Azure para unir seu recurso de agente MQTT na borda com o recurso de agente MQTT de Grade de Eventos na nuvem. O agente MQTT do Azure IoT é um novo agente MQTT distribuído para computação de borda que é executado em clusters Kubernetes habilitados para Azure Arc. Agora está disponível como parte das Operações IoT do Azure.

O recurso de corretor MQTT no Event Grid é ideal para os cenários automotivo, de mobilidade e de fabricação, entre outros. Para saber como criar soluções seguras e escaláveis para conectar milhões de clientes MQTT à nuvem usando os serviços de mensagens e análise de dados do Azure, consulte as arquiteturas de referência automotiva e de fabricação .

Diagrama que mostra a comunicação MQTT bidirecional com clientes de editor e assinante.

Destaques do suporte a mensagens MQTT na Grade de Eventos:

  • Suporte a MQTT v3.1.1 e MQTT v5.0: Usa qualquer biblioteca de cliente MQTT de código aberto para se comunicar com o serviço.
  • Tópicos personalizados com suporte a curingas: usa sua própria estrutura de tópicos.
  • Modelo de mensagens de publicação-assinatura: comunica-se de forma eficiente usando padrões de mensagens um-para-muitos, muitos-para-um e um-para-um.
  • Integração de nuvem integrada: roteia suas mensagens MQTT para serviços do Azure ou webhooks personalizados para processamento posterior.
  • Modelo de controle de acessoflexível e refinado: agrupa clientes e tópicos para simplificar o gerenciamento de controle de acesso. Usa o suporte a variáveis em modelos de tópico para controle de acesso refinado.
  • Métodos de autenticação do agente MQTT: Usa a autenticação de certificado X.509, um padrão de autenticação do setor para dispositivos IoT. Usa a autenticação de ID do Microsoft Entra, um padrão de autenticação do Azure para aplicativos. Usa padrões de autenticação flexíveis, como a autenticação OAuth 2.0 JSON Web Token (JWT), que é leve e segura para clientes MQTT que não são provisionados no Azure. Usa autenticação de webhook personalizada, que permite que pontos de extremidade HTTP externos (webhooks) autentiquem conexões MQTT dinamicamente. Este método usa a validação JWT do Entra ID para garantir o acesso seguro.
  • Suporte a Transport Layer Security (TLS) 1.2 e TLS 1.3: protege a comunicação do cliente usando protocolos de criptografia robustos.
  • Suporte a várias sessões: conecta seus aplicativos a várias sessões ativas para garantir confiabilidade e escalabilidade.
  • MQTT sobre WebSocket: Permite conectividade para clientes em ambientes restritos por firewall.
  • Nomes de domínio personalizados: Permite que os usuários atribuam seus próprios nomes de domínio aos pontos de extremidade MQTT de um namespace de Grade de Eventos, o que aumenta a segurança e simplifica a configuração do cliente.
  • Eventos do ciclo de vida do cliente: Permite que os aplicativos reajam a eventos sobre o status da conexão do cliente ou as operações de recursos do cliente.
  • HTTP Publish: Permite que dispositivos e serviços enviem mensagens MQTT para Event Grid por HTTPS, o que simplifica a integração com clientes não-MQTT.
  • MQTT Retain: Garante que a última mensagem conhecida sobre um tópico seja entregue automaticamente a novos assinantes, o que permite a sincronização instantânea de estado.

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

Mensagens de eventos (HTTP)

A Grade de Eventos oferece suporte à entrega de eventos push e pull usando HTTP. Com a entrega por push, você define um destino em uma assinatura de evento, para o qual a Grade de Eventos envia eventos. Com a entrega pull, os aplicativos do assinante se conectam à Grade de Eventos para consumir eventos. A entrega pull é suportada para tópicos em um namespace Event Grid.

Diagrama que mostra push delivery e pull delivery com o tipo de recursos envolvidos.

Processadores de eventos

Na entrega por push, uma assinatura de evento é um recurso de configuração genérico que você pode usar para 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, uma função do Azure ou hubs de eventos. Para obter uma lista completa dos manipuladores de eventos suportados, consulte:

  • Manipuladores de eventos suportados em tópicos de namespace.
  • Manipuladores de eventos suportados em tópicos personalizados, de sistema, de domínio e de parceiros.

Entrega por push vs. entrega por pull

As diretrizes gerais a seguir ajudam você a decidir quando usar a entrega pull ou push.

Entrega puxada

  • Você precisa de controle total sobre quando receber eventos. Por exemplo, seu aplicativo pode não estar ativo o tempo todo ou não ser estável o suficiente. Você também pode processar dados apenas em determinados momentos.
  • Você precisa de controle total sobre o consumo de eventos. Por exemplo, um serviço ou camada downstream em seu aplicativo de consumidor pode ter um problema que o impede de processar eventos. Nesse caso, a API de entrega pull permite que o aplicativo do consumidor libere um evento já lido de volta ao corretor para entrega posterior.
  • Você deseja usar links privados quando recebe eventos, o que só é possível com a entrega pull, não com a entrega push.
  • Você não tem a capacidade de expor um ponto de extremidade e usar a entrega por push, mas pode se conectar à Grade de Eventos para consumir eventos.

Entrega por push

  • Você deseja evitar sondagens constantes para determinar se ocorreu uma alteração de estado do sistema. Em vez disso, você deseja usar a Grade de Eventos para enviar eventos quando ocorrerem alterações de estado.
  • Você tem um aplicativo que não pode fazer chamadas de saída. Por exemplo, sua organização pode estar preocupada com a exfiltração de dados. No entanto, seu aplicativo pode receber eventos por meio de um ponto de extremidade público.

Destaques do modelo HTTP:

  • Modelo flexível de consumo de eventos: consuma eventos usando o modo de entrega pull ou push quando você usa HTTP.
  • Eventos do sistema: comece a trabalhar rapidamente com eventos de serviço internos do Azure.
  • Seus próprios eventos de aplicativo: use a Grade de Eventos para rotear, filtrar e entregar eventos personalizados de forma confiável do seu aplicativo.
  • Eventos de parceiros: inscreva-se nos eventos do provedor de SaaS do seu parceiro e processe-os no Azure.
  • Filtragem avançada: filtre por tipo de evento ou outros atributos de evento para garantir que seus manipuladores de eventos ou aplicativos de consumidor recebam apenas eventos relevantes.
  • Confiabilidade: a entrega por push apresenta um mecanismo de repetição de 24 horas com backoff exponencial para garantir que os eventos sejam entregues. Se você usar a entrega pull, seu aplicativo terá controle total sobre o consumo de eventos.
  • Alto rendimento: crie soluções integradas de alto volume com o Event Grid.
  • Nomes de domínio personalizados: permitem que os usuários atribuam seus próprios nomes de domínio aos pontos de extremidade HTTP de um namespace de Grade de Eventos, o que aumenta a segurança e simplifica a configuração do cliente.

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

Casos de utilização

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

Regiões suportadas

Os novos recursos de tópicos de broker e namespace MQTT estão disponíveis nas seguintes regiões.

Região Região Região Região
Leste da Austrália Sudeste da Austrália Austrália Central Austrália Central 2
Sul do Brasil Brasil Sudeste Canadá Central Leste do Canadá
Índia Central E.U.A. Central Ásia Leste E.U.A. Leste
E.U.A. Leste 2 E.U.A. Oeste Centro de França Sul de França
Norte da Alemanha Alemanha Centro-Oeste Israel Central Norte de Itália
Leste do Japão Oeste do Japão Coreia Central Sul da Coreia
México Central E.U.A. Centro-Norte Europa do Norte Leste da Noruega
Polónia Central Oeste da África do Sul Norte da África do Sul E.U.A. Centro-Sul
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 E.A.U.
E.A.U. Central Sul do Reino Unido Oeste do Reino Unido Europa Ocidental
E.U.A. Oeste 2 E.U.A. Oeste 3 E.U.A. Centro-Oeste