Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Event Grid stöder nu publicering av MQTT-meddelanden (Message Queuing Telemetry Transport) via HTTP. Event Grid gör det möjligt för serverdelssystem att skicka meddelanden till enheter utan att underhålla beständiga MQTT-anslutningar. Den här metoden förenklar integreringen för program som föredrar tillståndslös kommunikation. Den använder säker autentisering med Microsoft Entra-ID och ger skalbar och tillförlitlig leverans till MQTT-klienter. I den här artikeln får du lära dig hur du använder HTTP-publicerings-API:et. Du lär dig också hur du hämtar nödvändiga autentiseringsuppgifter och verifierar meddelandeleveransen med hjälp av populära verktyg som Bruno och MQTTX.
Anmärkning
Den här funktionen är för närvarande i förhandsversion.
Den här artikeln beskriver hur du publicerar MQTT-meddelanden via HTTP med Event Grid.
Hämta anslutningsinformation
-
Fullständigt domännamn för namnområde (FQDN): Ett exempel är
contoso.westus3-1.ts.eventgrid.azure.net. -
Ämne: Ett exempel är
devices/CXa-23112/prompt. - Autentiseringsuppgifter: Autentiseringsuppgifter för Microsoft Entra-ID-klienten.
Rolltilldelningar
Den identitet som används för att göra HTTP-publiceringsbegäran måste ha Azure RBAC-rollen EventGrid TopicSpaces Publisher för MQTT-meddelandeutgivarens åtkomst.
Hämta en ägartoken
Kör följande Azure CLI-kommando för att hämta en ägartoken:
az account get-access-token --resource=https://eventgrid.azure.net --query accessToken -o tsv
Spara den här token som ska användas i Authorization: Bearer <TOKEN> rubriken.
Publicera meddelanden med hjälp av HTTP
Här är ett exempel på ett curl-kommando för att simulera HTTP Publish:
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"
I det här exempelkommandot:
- Ämnet är procentkodat.
- Valfria rubriker läggs till för QoS (Quality of Service),
RETAINflaggan, svarsämnet och användaregenskaperna. - Nyttolasten hamnar i begärandetexten.
Verifiera i MQTTX
Använd MQTTX eller valfritt MQTT-bibliotek (som paho-mqtt Python) för att prenumerera på samma ämne för att bekräfta leveransen.
Skapa en ny anslutning i 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
Prenumerera på det ämne som du använde i HTTP-kommandot
POST.Kör HTTP Publish och håll utkik efter meddelandet i MQTTX. Nyttolasten bör visas.
Om publiceringen lyckas ser du:
- HTTP-svar: "204 Inget innehåll" eller "202 accepterades" (beroende på routningsregler).
- Meddelandet visas: MQTT-klienten ser meddelandet direkt.
Felsökning
- 401 Obehörig: Om token saknas eller har upphört att gälla visas "401 Obehörig". Uppdatera din token.
- 403 Förbjudet: Om ämnet är ogiltigt eller om du inte har rättigheter visas "403 Förbjudet". Kontrollera ditt ämne eller dina behörigheter.
- 500 Internt serverfel: Om routningen misslyckas internt kontrollerar du måtten och diagnostikloggarna för Event Grid-namnområdet.
- Meddelandet visas inte: Om meddelandet inte visas kontrollerar du att ämnet är procentkodat i URL:en. Kontrollera konfigurationen för koordinatordirigering och kontrollera att du använder samma namnområde.
Relaterat innehåll
- En översikt över den här funktionen finns i HTTP-publicering av MQTT-meddelanden med Azure Event Grid.