Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Azure Event Grid MQTT Broker HTTP Publish-API biedt klanten de mogelijkheid om berichten van Message Queuing Telemetry Transport (MQTT) te publiceren met behulp van standaard HTTP-aanvragen. Deze mogelijkheid vormt een aanvulling op directe MQTT-clientverbindingen. Het biedt een eenvoudige en schaalbare optie voor server-side-systemen die HTTP verkiezen voor server-naar-apparaat-opdracht- en besturing, updates of het beheer van retained messages.
Belangrijkste voordelen:
- Hiermee kunnen back-endservices MQTT-berichten verzenden zonder permanente MQTT-sessies geopend te houden.
- Helpt brokerstabiliteit te beschermen door MQTT-sessies per client te beperken.
- Zorgt voor consistente verwerking voor berichten die afkomstig zijn van MQTT en HTTP.
Wanneer gebruikt u HTTP Publish?
Overweeg om HTTP Publish te gebruiken wanneer:
- Uw back-endservices zijn systeemeigen HTTP en moeten apparaatopdrachten of updates via MQTT verzenden.
- U wilt bewaarde berichten beheren zonder een MQTT-verbinding te openen.
- U moet de publicatiecapaciteit omhoog schalen zonder dat de sessielimieten worden uitgeput.
Hoe het werkt
- HTTP-clients geven een HTTP-aanvraag
POSTuit met MQTT-publicatiedetails. - Event Grid wijst HTTP-aanvraagonderdelen toe aan standaard MQTT PUBLISH-pakketeigenschappen.
- Berichten stromen door de Event Grid-routerings- en verrijkingspijplijn, die zorgt voor bezorgingsgaranties en het toepassen van eventuele verrijkingen of transformaties.
Voorbeeld: equivalent van MQTT Publish
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
Voorbeeld: HTTP-publicatieaanvraag
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
Aanvraagparameters
In de volgende tabel wordt beschreven hoe HTTP-aanvraagonderdelen worden toegewezen aan MQTT PUBLISH-pakketeigenschappen. Raadpleeg de oorspronkelijke documentatie voor volledige informatie.
| MQTT-publicatieonderdeel | Type/waarden | Locatie | Verplicht | Description |
|---|---|---|---|---|
| Onderwerpnaam | Tekenreeks met procentcode | Vraag topic |
Ja | MQTT-onderwerp om naar te publiceren |
| QoS | 0 of 1 | Zoekopdracht qos of koptekst mqtt-qos |
Nee [standaard = 1] | QoS-niveau (Quality of Service) |
RETAIN vlag |
0 of 1 | Zoekopdracht retain of koptekst mqtt-retain |
Nee [standaard = 0] | Of het bericht moet worden bewaard |
| Antwoordonderwerp | Procentgecodeerde tekenreeks | Koptekst mqtt-response-topic |
Nee. | Antwoordonderwerp indien nodig |
| Correlatiegegevens | Base64-tekenreeks | Koptekst mqtt-correlation-data |
Nee. | Extra gegevens voor tracering |
| Gebruikerseigenschappen | Base64 JSON-array | Koptekst mqtt-user-properties |
Nee. | Aangepaste gebruikerseigenschappen |
| Inhoudstype | Snaar / Touwtje | Koptekst content-type |
Nee. | Payloadtype |
| Verloopinterval van bericht | Ongesigneerd geheel getal | Koptekst mqtt-message-expiry-interval |
Nee. | Bewaarperiode in seconden |
| Indicator voor payloadindeling | 0 of 1 | Koptekst mqtt-payload-format-indicator |
Nee [standaard = 0] | Opmaakindicator |
| Payload | Bytes | HTTP-hoofdtekst | Nee. | Berichtinhoud |
Notes:
- Queryparameterwaarden overschrijven headerwaarden als beide aanwezig zijn.
- Percentagecodering is vereist voor onderwerp- en antwoordonderwerp.
- Correlatiegegevens moeten base64-gecodeerd zijn.
Stappen op hoog niveau voor het gebruik van HTTP Publish
- Bereid uw Bearer-token van Microsoft Entra ID voor op verificatie.
- Bouw uw HTTP-aanvraag
POSTop uw Event Grid MQTT-brokereindpunt. - Neem vereiste queryparameters op, zoals onderwerp.
- Voeg optionele headers toe voor QoS, de vlag, het
RETAINantwoordonderwerp en de gebruikerseigenschappen. - Voeg uw payload toe als HTTP-body.
- Verzend de aanvraag.
- Bevestig de levering via logboeken en metrische gegevens in de Event Grid-portal.
Authenticatie en autorisatie
- HTTP Publish maakt gebruik van Microsoft Entra-id voor verificatie.
- Er is een bearer-token nodig in de autorisatieheader.
- De Microsoft Entra-object-id wordt de MQTT-client-id.
- Het AuthN/AuthZ-model wordt uitgelijnd met standaard MQTT-verbindingen.
Routering en waarneembaarheid
Metrische gegevens en logboeken zijn onder andere:
- Protocol:
http-publish - Aanvraag-id
- Onderwerp
- Bron IP-adres
- Autorisatie-principal
Beste praktijken
- Gebruik waar mogelijk headersleutels in kleine letters. HTTP/2-headersleutels zijn niet hoofdlettergevoelig.
- Bewaak de doorvoer omdat HTTP-berichten meestal groter zijn dan directe MQTT-berichten.
- Houd er rekening mee dat HTTP Publish doorvoerlimieten deelt met directe gepubliceerde MQTT-berichten.
Snelheidsbeperking
HTTP Publish telt mee voor uw totale MQTT-doorvoerquotum. Bewaak uw gebruik om te voorkomen dat de limieten worden overschreden.