O que é o Azure Event Grid?
A Grade de Eventos do Azure é um serviço de distribuição de mensagens Pub Sub altamente escalável e totalmente gerenciado que oferece padrões flexíveis de consumo de mensagens usando os protocolos MQTT e HTTP. Com a Grade de Eventos do Azure, você pode criar pipelines de dados com dados de dispositivo, 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, a Grade de Eventos permite que você crie 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. A Grade de Eventos pode ser configurada 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.
Principais características
Aqui estão os dois principais recursos da Grade de Eventos do Azure:
Mensagens MQTT. Dispositivos e aplicativos IoT podem se comunicar entre si por 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 com os serviços do Azure permite que você crie 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 (SaaS)
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. Vejamos estas duas características em detalhe:
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 WebSockets, MQTT v5 e MQTT v5 sobre WebSockets. O Event Grid permite enviar mensagens MQTT para a nuvem para análise de dados, armazenamento e visualizações, entre outros casos de uso.
A Grade de Eventos integra-se às Operações IoT do Azure para unir sua capacidade de agente MQTT na borda com a capacidade de agente MQTT da Grade de Eventos na nuvem. O agente MQTT do Azure IoT é um novo agente MQTT distribuído para computação de borda, executado em clusters Kubernetes habilitados para Arc. Agora está disponível em pré-visualização pública como parte das Operações IoT do Azure.
O recurso de agente MQTT na Grade de Eventos do Azure é ideal para a implementação de cenários automotivos e de mobilidade, entre outros. Consulte a arquitetura de referência para saber como criar soluções seguras e escaláveis para conectar milhões de veículos à nuvem, usando os serviços de mensagens e análise de dados do Azure.
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 cliente MQTT de código aberto para se comunicar com o serviço.
- Tópicos personalizados com suporte a curingas - Use sua própria estrutura de tópicos.
- Modelo de mensagens 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 de nuvem integrada - Encaminhe suas mensagens MQTT para serviços do Azure ou webhooks personalizados para processamento posterior.
- Modelo de controle de acesso flexível e refinado - Agrupe clientes e tópicos para simplificar o gerenciamento de controle de acesso e use o suporte variável em modelos de tópico para um controle de acesso refinado.
- Métodos de autenticação do agente MQTT - A autenticação de certificado X.509 é o padrão de autenticação do setor em 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 (JSON Web Token) fornece uma opção leve, segura e flexível para clientes MQTT que não são provisionados no Azure.
- Suporte a Transport Layer Security (TLS) 1.2 e TLS 1.3 - Proteja a comunicação do seu cliente usando protocolos de criptografia robustos.
- Suporte a várias sessões - Conecte seus aplicativos com várias sessões ativas para garantir confiabilidade e escalabilidade.
- MQTT sobre WebSockets - Habilite a 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 do namespace Event Grid, aumentando a segurança e simplificando 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.
Para obter mais informações sobre o broker MQTT, consulte os seguintes artigos:
- Descrição geral
- Publicar e assinar mensagens MQTT
- Tutorial: Encaminhar mensagens MQTT para Hubs de Eventos do Azure usando tópicos de namespace
- Tutorial: Encaminhar mensagens MQTT para o Azure Functions usando tópicos personalizados
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.
Processadores 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 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
Seguem-se orientações gerais para o ajudar a decidir quando utilizar a entrega por 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, não ser estável o suficiente ou você processar dados 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 tem um problema que impede que você processe eventos. Nesse caso, a API de entrega pull permite que o aplicativo do consumidor libere um evento já lido de volta ao corretor para que possa ser entregue posteriormente.
- Você deseja usar links privados ao receber 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, use a Grade de Eventos para enviar eventos para você no momento em que as alterações de estado ocorrerem.
- 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.
Aqui estão alguns destaques do modelo HTTP:
- Modelo flexível de consumo de eventos – ao usar HTTP, consuma eventos usando o modo de entrega pull ou push.
- Eventos do sistema – Comece a trabalhar rapidamente com eventos de serviço internos do Azure.
- Eventos do seu próprio aplicativo - Use a Grade de Eventos para rotear, filtrar e entregar eventos personalizados de forma confiável a partir 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 24 horas com recuo 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 - Permite que os usuários atribuam seus próprios nomes de domínio aos pontos de extremidade HTTP do namespace Event Grid, aumentando a segurança e simplificando a configuração do cliente.
Para obter mais informações, consulte os seguintes artigos:
- Visão geral da entrega pull.
- Visão geral da entrega por push.
- Conceitos
- Guia de início rápido: publique e assine eventos do aplicativo usando tópicos de namespace.
Casos de utilização
Para obter uma lista de casos de uso em que você pode usar a Grade de Eventos do Azure, consulte Casos de uso
Regiões suportadas
Aqui está a lista de regiões onde os novos recursos de tópicos de broker e namespace MQTT estão disponíveis:
Region | Region | Region | Region |
---|---|---|---|
Leste da Austrália | Sudeste da Austrália | Austrália Central | Austrália Central 2 |
Brasil do Sul | 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 | França Central | Sul de França |
Norte da Alemanha | Alemanha Centro-Oeste | Israel Central | Norte da Itália |
Leste do Japão | Oeste do Japão | Coreia do Sul Central | Sul da Coreia do Sul |
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 | EUA Oeste 3 | E.U.A. Centro-Oeste |
Conteúdos relacionados
- Visão geral das mensagens MQTT
- Visão geral da entrega pull HTTP.
- Visão geral da entrega por push HTTP.