Dela via


HTTP-publicering av MQTT-meddelanden med Azure Event Grid (förhandsversion)

Azure Event Grid MQTT Broker HTTP Publish-API:et ger kunderna möjlighet att publicera MQTT-meddelanden (Message Queuing Telemetry Transport) med hjälp av http-standardbegäranden. Den här funktionen kompletterar direkta MQTT-klientanslutningar. Det ger ett enkelt och skalbart alternativ för system på serversidan som föredrar HTTP för kommando och kontroll från server till enhet, uppdateringar eller kvarhållen meddelandehantering.

Anmärkning

Den här funktionen är för närvarande i förhandsversion.

Viktiga fördelar:

  • Tillåter att serverdelstjänster skickar MQTT-meddelanden utan att hålla beständiga MQTT-sessioner öppna.
  • Hjälper till att skydda asynkron stabilitet genom att begränsa MQTT-sessioner per klient.
  • Säkerställer konsekvent bearbetning av meddelanden som kommer från MQTT och HTTP.

När http-publicering ska användas

Överväg att använda HTTP Publish när:

  • Serverdelstjänsterna är HTTP-interna och måste skicka enhetskommandon eller uppdateringar via MQTT.
  • Du vill hantera kvarhållna meddelanden utan att öppna en MQTT-anslutning.
  • Du måste skala upp publiceringskapaciteten utan att överskrida sessionsgränserna.

Så här fungerar det

  1. HTTP-klienter utfärdar en HTTP-begäran POST med MQTT-publiceringsinformation.
  2. Event Grid mappar HTTP-begärandedelar till standardegenskaperna för MQTT PUBLISH-paket.
  3. Meddelanden flödar via Event Grid-routnings- och berikningspipelinen, vilket garanterar leveransgarantier och tillämpar all berikning eller transformering.

Exempel: MQTT Publicera motsvarande

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

Exempel: HTTP-publiceringsbegäran

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

Parametrar för begäran

I följande tabell beskrivs hur HTTP-begärandedelar mappas till egenskaperna för MQTT PUBLISH-paket. Mer information finns i den ursprungliga dokumentationen.

MQTT-publiceringsdel Typ/värden Plats Krävs Description
Ämnesnamn Procentkodad sträng Fråga topic Ja MQTT-ämne att publicera till
QoS 0 eller 1 Fråga qos eller sidhuvud mqtt-qos Nej [standard = 1] Tjänstkvalitetsnivå (QoS)
RETAIN flagga 0 eller 1 Fråga retain eller sidhuvud mqtt-retain Nej [standard = 0] Om meddelandet ska behållas
Svarsämne Procentkodad sträng Rubrik mqtt-response-topic Nej Svarsämne om det behövs
Korrelationsdata Base64-sträng Rubrik mqtt-correlation-data Nej Extra data för spårning
Användaregenskaper Base64 JSON-matris Rubrik mqtt-user-properties Nej Anpassade användaregenskaper
Innehållstyp Sträng Rubrik content-type Nej Nyttolasttyp
Intervall för meddelande upphör att gälla Osignerat heltal Rubrik mqtt-message-expiry Nej Kvarhållningsperiod i sekunder
Indikator för nyttolastformat 0 eller 1 Rubrik mqtt-payload-format-indicator Nej [standard = 0] Formatindikator
Nyttolast byte HTTP-brödtext Nej Meddelandetext

Notes:

  • Frågeparametervärden åsidosätter huvudvärden om båda finns.
  • Procentkodning krävs för ämnes- och svarsämne.
  • Korrelationsdata måste vara Base64-kodade.

Övergripande steg för att använda HTTP Publish

  1. Förbered din Microsoft Entra ID-ägartoken för autentisering.
  2. Skapa din HTTP-begäran POST till din Event Grid MQTT-koordinatorslutpunkt.
  3. Inkludera obligatoriska frågeparametrar, till exempel ämne.
  4. Lägg till valfria rubriker för QoS, RETAIN flaggan, svarsämnet och användaregenskaperna.
  5. Lägg till nyttolasten som HTTP-brödtext.
  6. Skicka begäran.
  7. Bekräfta leverans via loggar och mått i Event Grid-portalen.

Autentisering och auktorisering

  • HTTP Publish använder Microsoft Entra-ID för autentisering.
  • En ägartoken krävs i auktoriseringshuvudet.
  • Microsoft Entra-objekt-ID:t blir MQTT-klient-ID.
  • AuthN/AuthZ-modellen överensstämmer med MQTT-standardanslutningar.

Routning och observerbarhet

Mått och loggar omfattar:

  • Protokoll: http-publish
  • Begärande-ID
  • Ämne
  • Käll-IP-adress
  • Auktoriseringsobjekt

Metodtips

  • Använd gemener i sidhuvuden där det är möjligt. HTTP/2-huvudnycklar är skiftlägesokänsliga.
  • Övervaka dataflödet eftersom HTTP-meddelanden tenderar att vara större än direkta MQTT-meddelanden.
  • Observera att HTTP Publish delar dataflödesgränser med direkta MQTT-publicerade meddelanden.

Strypning

HTTP-publicering räknas mot din totala MQTT-dataflödeskvot. Övervaka din användning för att undvika att överskrida gränserna.