¿Qué es Azure Event Grid?
Azure Event Grid es un servicio de distribución de mensajes de publicación y suscripción altamente escalable y totalmente administrado que ofrece patrones flexibles de consumo de mensajes mediante los protocolos MQTT y HTTP. Con Azure Event Grid, puede crear canalizaciones de datos con datos de dispositivo, integrar aplicaciones y crear arquitecturas sin servidor controladas por eventos.
Event Grid permite a los clientes publicar y suscribirse a mensajes a través de los protocolos MQTT v3.1.1 y v5.0 para admitir soluciones del Internet de las cosas (IoT). Mediante HTTP, Event Grid permite crear soluciones controladas por eventos en las que un servicio publicador anuncia los cambios de estado del sistema (eventos) en las aplicaciones del suscriptor. Event Grid se puede configurar para enviar eventos a los suscriptores (entrega de inserción) o los suscriptores pueden conectarse a Event Grid para leer eventos (entrega de extracción). Event Grid admite la especificación CloudEvents 1.0 para proporcionar interoperabilidad entre sistemas.
Características principales
Estas son las dos características principales de Azure Event Grid:
Mensajería MQTT. Los dispositivos y aplicaciones de IoT se pueden comunicar entre sí a través de MQTT. Event Grid también se puede usar para enrutar mensajes MQTT a servicios de Azure o puntos de conexión personalizados para realizar análisis, visualización o almacenamiento de datos adicionales. Esta integración con los servicios de Azure le permite crear canalizaciones de datos que comienzan con la ingesta de datos desde los dispositivos IoT.
Distribución de datos mediante modos de entrega de inserción y extracción. En cualquier momento de una canalización de datos, las aplicaciones HTTP pueden consumir mensajes mediante las API de inserción o extracción. El origen de los datos puede incluir los datos de los clientes MQTT, pero también incluye los siguientes orígenes de datos que envían sus eventos a través de HTTP:
- Servicios de Azure
- Sus aplicaciones personalizadas
- Sistemas de asociados externos (SaaS)
El mecanismo de entrega de inserción de Event Grid envía datos a destinos que incluyen sus propios webhooks de aplicación y servicios de Azure. Echemos un vistazo a estas dos características en detalle:
Mensajería MQTT
Event Grid permite a los clientes comunicarse en nombres de temas MQTT personalizados mediante un modelo de mensajería de publicación y suscripción. Event Grid admite clientes que publican y se suscriben a mensajes mediante MQTT v3.1.1, MQTT v3.1.1 a través de WebSockets, MQTT v5 y MQTT v5 a través de WebSockets. Event Grid permite enviar mensajes MQTT a la nube para el análisis de datos, el almacenamiento y las visualizaciones, entre otros casos de uso.
Event Grid se integra con Operaciones de IoT de Azure para unir su funcionalidad de MQTT broker en el perímetro con la funcionalidad de MQTT broker de Event Grid en la nube. Azure IoT MQTT broker es un nuevo MQTT broker distribuido para la informática perimetral, que se ejecuta en clústeres de Kubernetes habilitados para Arc. Ahora está disponible en versión preliminar pública como parte de las operaciones de Azure IoT.
La característica MQTT broker de Azure Event Grid es idónea para la implementación de escenarios de automoción y movilidad, entre otros. Consulte la arquitectura de referencia para obtener información sobre cómo crear soluciones seguras y escalables para conectar millones de vehículos a la nube mediante los servicios de análisis de datos y mensajería de Azure.
Estos son algunos aspectos destacados de la compatibilidad con la mensajería MQTT en Azure Event Grid:
- MQTT v3.1.1 y MQTT v5.0 admiten: Usar cualquier biblioteca cliente MQTT de código abierto para comunicarse con el servicio.
- Temas personalizados con compatibilidad con caracteres comodín: Aproveche su propia estructura de temas.
- Modelo de mensajería de publicación y suscripción: Comuníquese de forma eficaz mediante patrones de mensajería uno a varios, varios a uno y uno a uno.
- Integración en la nube integrada: Enrute los mensajes MQTT a servicios de Azure o webhooks personalizados para su posterior procesamiento.
- Modelo de control de acceso flexible y específico: Agrupar clientes y temas para simplificar la administración del control de acceso y usar la compatibilidad de variables en plantillas de tema para un control de acceso específico.
- Métodos de autenticación de MQTT broker: La autenticación mediante el certificado X.509 es el estándar de autenticación de la industria en dispositivos IoT; la Autenticación de Microsoft Entra ID es el estándar de autenticación de Azure para aplicaciones y la autenticación OAuth 2.0 (JSON Web Token) proporciona una opción ligera, segura y flexible para clientes MQTT que no están aprovisionados en Azure.
- TLS 1.2 y TLS 1.3 (Seguridad de la capa de transporte) admiten: Proteja la comunicación del cliente mediante protocolos de cifrado sólidos.
- Compatibilidad con varias sesiones: Conecte las aplicaciones con varias sesiones activas para garantizar la confiabilidad y la escalabilidad.
- MQTT a través de WebSockets: Habilite la conectividad para los clientes en entornos restringidos por firewall.
- Nombres de dominio personalizados: Permite a los usuarios asignar sus propios nombres de dominio a los puntos de conexión MQTT del espacio de nombres de Event Grid, lo que mejora la seguridad y simplifica la configuración del cliente.
- Eventos del ciclo de vida del cliente: Permite que las aplicaciones reaccionen a eventos sobre el estado de conexión de cliente o las operaciones de recursos de cliente.
Para obtener más información sobre MQTT broker, consulte los artículos siguientes:
- Información general
- Publicación y suscripción a mensajes MQTT
- Tutorial: Enrutamiento de mensajes MQTT a Azure Event Hubs mediante temas de espacio de nombres
- Tutorial: Enrutamiento de mensajes MQTT a Azure Functions mediante temas personalizados
Mensajería de eventos (HTTP)
Con HTTP, Event Grid admite la entrega de eventos de inserción y extracción. Con la entrega de inserción, se define un destino en una suscripción de eventos a la que Event Grid envía eventos. Con la entrega de extracción, las aplicaciones del suscriptor se conectan a Event Grid para consumir eventos. La entrega de extracción es compatible con los temas de un espacio de nombres de Event Grid.
Controladores de eventos
En la entrega de inserción, una suscripción a eventos es un recurso de configuración genérico que permite definir el controlador de eventos o el destino a los que se envían los eventos mediante la entrega de inserción. Por ejemplo, puede enviar datos a un Webhook, una función de Azure o Event Hubs. Para obtener una lista completa de los controladores de eventos admitidos, vea:
- Controladores de eventos se admiten en temas de espacio de nombres.
- Controladores de eventos compatibles con temas personalizados, del sistema, del dominio y de los asociados.
Entrega de inserción frente a entrega de extracción
A continuación, se muestran directrices generales que le ayudarán a decidir cuándo usar la entrega de extracción o inserción.
Entrega de extracción
- Necesita un control absoluto sobre cuándo recibir eventos. Por ejemplo, es posible que la aplicación no esté en funcionamiento todo el tiempo, no sea lo suficientemente estable, o que no procese los datos en determinados momentos.
- Necesita un control absoluto sobre el consumo de eventos. Por ejemplo, un servicio o una capa de nivel inferior de la aplicación de consumidor tiene un problema que impide que procese eventos. En ese caso, la API de entrega de extracción permite que la aplicación de consumidor libere un evento de lectura ya leído al agente para que se pueda entregar más adelante.
- Quiere usar vínculos privados al recibir eventos, lo que solo es posible con la entrega de extracción, no con la entrega de inserción.
- No tiene la capacidad de exponer un punto de conexión y usar la entrega de inserción, pero puede conectarse a Event Grid para consumir eventos.
Entrega de inserción
- Quiere evitar sondeos constantes para determinar que se ha producido un cambio de estado del sistema. Prefiere usar Event Grid para enviar eventos en el momento en que se producen cambios de estado.
- Tiene una aplicación que no puede realizar llamadas salientes. Por ejemplo, puede que a su organización le preocupe la filtración de datos. Sin embargo, la aplicación puede recibir eventos a través de un punto de conexión público.
Estos son algunos aspectos destacados del modelo HTTP:
- Modelo de consumo de eventos flexible: al usar HTTP, consuma eventos mediante el modo de entrega de extracción o inserción.
- Eventos del sistema: póngase en marcha rápidamente con eventos de servicio de Azure integrados.
- Sus propios eventos de aplicación: use Event Grid para enrutar, filtrar y entregar de forma confiable eventos personalizados de su aplicación.
- Eventos de asociados: suscríbase a los eventos del proveedor SaaS asociado y procéselos en Azure.
- Filtrado avanzado: filtre por el tipo de evento u otros atributos de evento para asegurarse de que los controladores de eventos o las aplicaciones de consumidor solo reciben eventos relevantes.
- Confiabilidad: la entrega de inserción incluye un mecanismo de reintento de 24 horas con retroceso exponencial para asegurarse de que se entregan los eventos. Si usa la entrega de extracción, la aplicación tiene control total sobre el consumo de eventos.
- Alto rendimiento: cree soluciones integradas de gran volumen con Event Grid.
- Nombres de dominio personalizados: Permite a los usuarios asignar sus propios nombres de dominio a los puntos de conexión HTTP del espacio de nombres de Event Grid, lo que mejora la seguridad y simplifica la configuración del cliente.
Vea los siguientes artículos para más información:
- Introducción a la entrega de extracción.
- Introducción a la entrega de inserción.
- Conceptos
- Inicio rápido: Publicación y suscripción a eventos de aplicación mediante temas de espacio de nombres.
Casos de uso
Para obtener una lista de los casos de uso en los que puede usar Azure Event Grid, consulte Casos de uso.
Regiones admitidas
Esta es la lista de regiones en las que están disponibles las nuevas características del agente MQTT y del espacio de nombres:
Region | Region | Region | Region |
---|---|---|---|
Este de Australia | Sudeste de Australia | Centro de Australia | Centro de Australia 2 |
Sur de Brasil | Sur de Brasil | Centro de Canadá | Este de Canadá |
Centro de la India | Centro de EE. UU. | Este de Asia | Este de EE. UU. |
Este de EE. UU. 2 | Oeste de EE. UU. | Centro de Francia | Sur de Francia |
Norte de Alemania | Centro-oeste de Alemania | Centro de Israel | Norte de Italia |
Japón Oriental | Japón Occidental | Centro de Corea del Sur | Corea del Sur |
Centro de México | Centro-Norte de EE. UU | Norte de Europa | Este de Noruega |
Centro de Polonia | Oeste de Sudáfrica | Norte de Sudáfrica | Centro-sur de EE. UU. |
Sur de la India | Sudeste de Asia | Centro de España | Centro de Suecia |
Sur de Suecia | Norte de Suiza | Oeste de Suiza | Norte de Emiratos Árabes Unidos |
Centro de Emiratos Árabes Unidos | Sur de Reino Unido | Oeste de Reino Unido | Oeste de Europa |
Oeste de EE. UU. 2 | Oeste de EE. UU. 3 | Centro-Oeste de EE. UU. |