Sdílet prostřednictvím


Publikování zpráv MQTT HTTP pomocí služby Azure Event Grid (Preview)

Rozhraní API pro publikování HTTP zprostředkovatele Azure Event Grid MQTT umožňuje zákazníkům publikovat zprávy přenosu telemetrie služby Řízení front zpráv (MQTT) pomocí standardních požadavků HTTP. Tato funkce doplňuje přímá připojení klientů MQTT. Poskytuje jednoduchou a škálovatelnou možnost pro systémy na straně serveru, které dávají přednost protokolu HTTP pro příkaz a řízení, aktualizace nebo správu zpráv na straně serveru.

Poznámka:

Tato funkce je aktuálně dostupná jako ukázková verze.

Klíčové výhody:

  • Umožňuje back-endovým službám odesílat zprávy MQTT, aniž by byly trvalé relace MQTT otevřené.
  • Pomáhá chránit stabilitu zprostředkovatele omezením relací MQTT pro jednotlivé klienty.
  • Zajišťuje konzistentní zpracování zpráv pocházejících z MQTT a HTTP.

Kdy použít publikování HTTP

Zvažte použití publikování HTTP v následujících případech:

  • Back-endové služby jsou nativní pro HTTP a potřebují odesílat příkazy zařízení nebo aktualizace přes MQTT.
  • Chcete spravovat zachované zprávy bez otevření připojení MQTT.
  • Potřebujete vertikálně navýšit kapacitu publikování bez vyčerpání limitů relací.

Jak to funguje

  1. Klienti HTTP vydávají požadavek HTTP POST s podrobnostmi o publikování MQTT.
  2. Event Grid mapuje části požadavků HTTP na standardní vlastnosti paketu MQTT PUBLISH.
  3. Zprávy procházejí směrováním a kanálem rozšiřování služby Event Grid, který zajišťuje záruky doručení a použije veškeré rozšiřování nebo transformaci.

Příklad: Ekvivalent publikování MQTT

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

Příklad: Požadavek publiková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

Parametry požadavku

Následující tabulka popisuje, jak části požadavku HTTP mapují na vlastnosti paketu MQTT PUBLISH. Úplné podrobnosti najdete v původní dokumentaci.

Část Publikování MQTT Typ/hodnoty Umístění Povinné Description
Název tématu Řetězec kódovaný v procentech Dotaz topic Ano Téma MQTT pro publikování do
QoS 0 nebo 1 Dotaz qos nebo záhlaví mqtt-qos Ne [výchozí = 1] Úroveň kvality služby (QoS)
RETAIN vlajka 0 nebo 1 Dotaz retain nebo záhlaví mqtt-retain Ne [výchozí = 0] Zda se má zpráva zachovat
Téma odpovědi Řetězec kódovaný v procentech Záhlaví mqtt-response-topic Ne Téma odpovědi v případě potřeby
Data korelace Řetězec Base64 Záhlaví mqtt-correlation-data Ne Další data pro sledování
Vlastnosti uživatele Pole JSON base64 Záhlaví mqtt-user-properties Ne Vlastní vlastnosti uživatele
Typ obsahu Řetězec Záhlaví content-type Ne Typ datové části
Interval vypršení platnosti zprávy Celé číslo bez znaménka Záhlaví mqtt-message-expiry Ne Doba uchování v sekundách
Indikátor formátu datové části 0 nebo 1 Záhlaví mqtt-payload-format-indicator Ne [výchozí = 0] Indikátor formátu
Užitečný náklad Bytes Text HTTP Ne Text zprávy

Notes:

  • Hodnoty parametrů dotazu přepíší hodnoty hlaviček, pokud jsou k dispozici obě hodnoty.
  • Pro téma témat a odpovědi se vyžaduje kódování procent.
  • Data korelace musí být zakódovaná ve formátu Base64.

Základní kroky pro použití publikování HTTP

  1. Připravte nosný token Microsoft Entra ID pro ověřování.
  2. Vytvořte požadavek HTTP POST na koncový bod zprostředkovatele Event Grid MQTT.
  3. Zahrňte požadované parametry dotazu, jako je téma.
  4. Přidejte volitelná záhlaví pro QoS, RETAIN příznak, téma odpovědi a vlastnosti uživatele.
  5. Přidejte datovou část jako tělo PROTOKOLU HTTP.
  6. Odešlete požadavek.
  7. Potvrďte doručení prostřednictvím protokolů a metrik na portálu Event Grid.

Autentizace a autorizace

  • Publikování HTTP používá k ověřování ID Microsoft Entra.
  • V autorizační hlavičce se vyžaduje nosný token.
  • ID objektu Microsoft Entra se stane ID klienta MQTT.
  • Model AuthN/AuthZ odpovídá standardním připojením MQTT.

Směrování a pozorovatelnost

Mezi metriky a protokoly patří:

  • Protokol: http-publish
  • ID žádosti
  • Téma
  • Zdrojová IP adresa
  • Objekt zabezpečení autorizace

Osvědčené postupy

  • Pokud je to možné, používejte klíče záhlaví malými písmeny. Klíče hlaviček HTTP/2 nerozlišují malá a velká písmena.
  • Monitorujte propustnost, protože zprávy HTTP mají tendenci být větší než přímé zprávy MQTT.
  • Všimněte si, že publikování HTTP sdílí limity propustnosti s přímými publikovanými zprávami MQTT.

Řízení výkonu/omezování rychlosti

Publikování HTTP se počítá do celkové kvóty propustnosti MQTT. Monitorujte využití, abyste se vyhnuli překročení limitů.