Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La API de publicación HTTP de MQTT Broker de Azure Event Grid permite a los clientes publicar mensajes de transporte de telemetría de Message Queuing (MQTT) mediante solicitudes HTTP estándar. Esta funcionalidad complementa las conexiones directas de cliente MQTT. Proporciona una opción sencilla y escalable para los sistemas del lado servidor que prefieren HTTP para el control y el control del servidor a dispositivo, las actualizaciones o la administración de mensajes retenidos.
Nota:
Esta funcionalidad actualmente está en su versión preliminar.
Ventajas clave:
- Permite que los servicios back-end envíen mensajes MQTT sin mantener abiertas las sesiones de MQTT persistentes.
- Ayuda a proteger la estabilidad del agente limitando las sesiones MQTT por cliente.
- Garantiza un procesamiento coherente para los mensajes que se originan en MQTT y HTTP.
Cuándo usar la publicación HTTP
Considere la posibilidad de usar la publicación HTTP cuando:
- Los servicios back-end son nativos HTTP y necesitan enviar comandos de dispositivo o actualizaciones a través de MQTT.
- Quiere administrar los mensajes retenidos sin abrir una conexión MQTT.
- Debe escalar verticalmente la capacidad de publicación sin agotar los límites de sesión.
Cómo funciona
- Los clientes HTTP emiten una solicitud HTTP
POSTcon los detalles de publicación de MQTT. - Event Grid asigna elementos de solicitud HTTP a las propiedades estándar del paquete MQTT PUBLISH.
- Los mensajes fluyen a través de la canalización de enrutamiento y enriquecimiento de Event Grid, lo que garantiza la entrega y aplica cualquier enriquecimiento o transformación.
Ejemplo: MQTT Publish equivalente
PUBLISH Topic Name: devices/CXa-23112/prompt
QoS: 1
RETAIN: 0
Response Topic: devices/CXa-23112/reply
Correlation Data: >U±¶¶»/
User Property: Urgency = alert
User Property: RequestId = 55f4a7ee-b0b4-4d7f-8eb5-2edba2ced5d7
Payload: Please accept terms of licensing and agreement
Ejemplo: solicitud de publicación HTTP
POST /mqtt/messages?topic=devices%2FCXa-23112%2Fprompt&api-version=2025-02-15-preview HTTP/1.1
Host: nsname.westus3-1.ts.eventgrid.azure.net
Authorization: Bearer <ENTRA_TOKEN_HERE>
mqtt-qos: 1
mqtt-retain: 0
mqtt-response-topic: devices%2FCXa-23112%2Freply
mqtt-correlation-data: PlXCscK2wrbCuy8=
mqtt-user-properties: W3siVXJnZW5jeSI6ImFsZXJ0In0seyJSZXF1ZXN0SWQiOiI1NWY0YTdlZS1iMGI0LTRkN2YtOGViNS0yZWRiYTJjZWQ1ZDcifV0=
Content-Type: text/plain;charset=UTF-8
Date: Sun, 06 Nov 1994 08:49:37 GMT
Content-Length: 46
Please accept terms of licensing and agreement
Parámetros de solicitud
En la tabla siguiente se describe cómo los elementos de solicitud HTTP se asignan a las propiedades del paquete MQTT PUBLISH. Consulte la documentación original para obtener más información.
| Elemento de publicación de MQTT | Tipo y valores | Ubicación | Obligatorio | Description |
|---|---|---|---|---|
| Nombre del tema | Cadena codificada por porcentaje | Consulta topic |
Sí | El tema MQTT en el que se va a publicar |
| QoS | 0 o 1 | Consulta qos o encabezado mqtt-qos |
No [default = 1] | Nivel de calidad de servicio (QoS) |
Marca RETAIN |
0 o 1 | Consulta retain o encabezado mqtt-retain |
No [default = 0] | Si se debe conservar el mensaje |
| Tema de respuestas | Cadena codificada por porcentaje | Encabezado mqtt-response-topic |
No | Tema de respuesta si es necesario |
| Datos de correlación | Cadena de Base64 | Encabezado mqtt-correlation-data |
No | Datos adicionales para el seguimiento |
| Propiedades de usuario | Matriz JSON Base64 | Encabezado mqtt-user-properties |
No | Propiedades de usuario personalizadas |
| Tipo de contenido | Cuerda | Encabezado content-type |
No | Tipo de carga |
| Intervalo de expiración de mensajes | Entero sin signo | Encabezado mqtt-message-expiry |
No | Período de retención en segundos |
| Indicador de formato de carga | 0 o 1 | Encabezado mqtt-payload-format-indicator |
No [predeterminado = 0] | Indicador de formato |
| Carga | Bytes | Cuerpo HTTP | No | Cuerpo del mensaje |
Notes:
- Los valores de parámetro de consulta invalidan los valores de encabezado si ambos están presentes.
- La codificación por porcentaje es necesaria para el tema y el tema de respuesta.
- Los datos de correlación deben estar codificados en Base64.
Pasos generales para usar la publicación HTTP
- Prepare el token de portador de Microsoft Entra ID para la autenticación.
- Construya la solicitud HTTP
POSTal punto de conexión del agente MQTT de Event Grid. - Incluya los parámetros de consulta necesarios, como el tema.
- Agregue encabezados opcionales para QoS, la marca
RETAIN, el tema de respuesta y las propiedades de usuario. - Agregue la carga como cuerpo HTTP.
- Envíe la solicitud.
- Confirme la entrega a través de registros y métricas en el portal de Event Grid.
Autenticación y autorización
- La publicación HTTP usa Microsoft Entra ID para la autenticación.
- Se necesita un token de portador en el encabezado de autorización.
- El id. de objeto de Microsoft Entra se convierte en el identificador de cliente MQTT.
- El modelo AuthN/AuthZ se alinea con las conexiones MQTT estándar.
Enrutamiento y observabilidad
Las métricas y los registros incluyen:
- Protocolo:
http-publish - Id. de solicitud
- Tema
- IP de origen
- Entidad de seguridad de autorización
procedimientos recomendados
- Use las claves de encabezado en minúsculas siempre que sea posible. Las claves de encabezado HTTP/2 no distinguen mayúsculas de minúsculas.
- Supervise el rendimiento porque los mensajes HTTP tienden a ser mayores que los mensajes MQTT directos.
- Observe que la publicación HTTP comparte los límites de rendimiento con mensajes publicados de MQTT directos.
Limitaciones
La publicación HTTP cuenta para la cuota de rendimiento general de MQTT. Supervise el uso para evitar superar los límites.