Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Event Grid teď podporuje publikování zpráv přenosu telemetrie služby Řízení front zpráv (MQTT) prostřednictvím protokolu HTTP. Event Grid umožňuje back-endovým systémům odesílat zprávy do zařízení bez zachování trvalých připojení MQTT. Tento přístup zjednodušuje integraci pro aplikace, které dávají přednost bezstavové komunikaci. Používá zabezpečené ověřování s ID Microsoft Entra a poskytuje škálovatelné a spolehlivé doručování klientůM MQTT. V tomto článku se dozvíte, jak používat rozhraní HTTP Publish API. Dozvíte se také, jak získat potřebné přihlašovací údaje a ověřit doručení zpráv pomocí oblíbených nástrojů, jako jsou Bruno a MQTTX.
Poznámka:
Tato funkce je aktuálně dostupná jako ukázková verze.
Tento článek vysvětluje, jak publikovat zprávy MQTT prostřednictvím protokolu HTTP pomocí event Gridu.
Získání podrobností o připojení
-
Plně kvalifikovaný název domény oboru názvů: Příklad:
contoso.westus3-1.ts.eventgrid.azure.net -
Téma: Příkladem je
devices/CXa-23112/prompt. - Přihlašovací údaje: Přihlašovací údaje klienta Microsoft Entra ID.
Přiřazení rolí
Identita použitá k provedení požadavku HTTP Publish musí mít roli EventGrid TopicSpaces Publisher Azure RBAC pro přístup vydavatele zpráv MQTT.
Získání nosné tokeny
Spuštěním následujícího příkazu Azure CLI získejte nosný token:
az account get-access-token --resource=https://eventgrid.azure.net --query accessToken -o tsv
Uložte tento token, abyste ho mohli použít v Authorization: Bearer <TOKEN> záhlaví.
Publikování zpráv pomocí protokolu HTTP
Tady je příklad příkazu curl pro simulaci publikování HTTP:
curl -X POST "https://contoso.westus3-1.ts.eventgrid.azure.net/mqtt/messages?topic=devices%2XXXX-0000%2Fprompt&api-version=2025-08-01-preview" \
-H "Authorization: Bearer <ENTRA_TOKEN_HERE>" \
-H "mqtt-qos: 1" \
-H "mqtt-retain: 0" \
-H "mqtt-response-topic: devices%2XXXX-00000%2Freply" \
-H "mqtt-correlation-data: XXXXXXX" \
-H "mqtt-user-properties: XXXXXXXXXXXX" \
-H "Content-Type: text/plain;charset=UTF-8" \
--data-raw "Please accept terms of licensing and agreement"
V tomto ukázkovém příkazu:
- Téma je kódováno procentem.
- Volitelné hlavičky se přidají pro QoS (Quality of Service),
RETAINpříznak, téma odpovědi a vlastnosti uživatele. - Payload je součástí těla požadavku.
Ověřte v MQTTX
K přihlášení k odběru stejného tématu použijte MQTTX nebo libovolnou knihovnu MQTT (například paho-mqtt Python), abyste potvrdili doručení.
Vytvořte nové připojení v MQTTX:
Host: contoso.westus3-1.ts.eventgrid.azure.netPort: 8883 (TLS)Client ID: same as your Entra Object IDUsername/Password: N/A — use certificate or token auth if configured
Přihlaste se k odběru tématu, které jste použili v příkazu HTTP
POST.Spusťte příkaz Http Publish a sledujte zprávu v MQTTX. Měla by se zobrazit datová část.
Pokud publikování proběhne úspěšně, zobrazí se:
- Odpověď HTTP: "204 Žádný obsah" nebo "202 Akceptované" (v závislosti na pravidlech směrování).
- Zobrazí se zpráva: Klient MQTT okamžitě zobrazí zprávu.
Řešení problémů
- 401 Neautorizováno: Pokud token chybí nebo vypršela jeho platnost, zobrazí se chyba 401 Neautorizováno. Obnovte token.
- 403 Zakázáno: Pokud téma není platné nebo nemáte práva, zobrazí se chyba 403 Zakázáno. Zkontrolujte téma nebo oprávnění.
- 500 Vnitřní chyba serveru: Pokud směrování selže interně, zkontrolujte metriky a diagnostické protokoly pro váš obor názvů Event Gridu.
- Zpráva se nezobrazí: Pokud se zpráva nezobrazí, ujistěte se, že je toto téma v adrese URL kódované v procentech. Zkontrolujte konfiguraci směrování zprostředkovatele a ověřte, že používáte stejný obor názvů.
Související obsah
- Přehled této funkce najdete v tématu Publikování zpráv MQTT HTTP ve službě Azure Event Grid.