Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs API publikowania HTTP brokera MQTT usługi Azure Event Grid umożliwia klientom publikowanie komunikatów usługi Telemetrii Transportu telemetrii (MQTT, Message Queuing Telemetry Transport) przy użyciu standardowych żądań HTTP. Ta funkcja uzupełnia bezpośrednie połączenia klienta MQTT. Zapewnia prostą i skalowalną opcję dla systemów po stronie serwera, które preferują protokół HTTP dla poleceń i kontroli serwer-urządzenie, aktualizacji lub zachowywanego zarządzania komunikatami.
Najważniejsze korzyści:
- Umożliwia usługom zaplecza wysyłanie komunikatów MQTT bez konieczności otwierania trwałych sesji MQTT.
- Pomaga chronić stabilność brokera przez ograniczenie sesji MQTT na klienta.
- Zapewnia spójne przetwarzanie komunikatów pochodzących z MQTT i HTTP.
Kiedy należy używać funkcji publikowania HTTP
Rozważ użycie funkcji publikowania HTTP, gdy:
- Usługi zaplecza są natywne dla protokołu HTTP i muszą wysyłać polecenia lub aktualizacje urządzenia za pośrednictwem protokołu MQTT.
- Chcesz zarządzać zachowanych komunikatów bez otwierania połączenia MQTT.
- Należy skalować pojemność publikowania w górę bez wyczerpania limitów sesji.
Jak to działa
- Klienci HTTP wystawiają żądanie HTTP
POSTze szczegółami publikowania MQTT. - Usługa Event Grid mapuje części żądań HTTP na standardowe właściwości pakietów PUBLISH MQTT.
- Komunikaty przepływają przez potok routingu i wzbogacania usługi Event Grid, który gwarantuje dostarczanie i stosuje wszelkie wzbogacanie lub przekształcanie.
Przykład: odpowiednik publikowania 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
Przykład: żądanie publikowania 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 żądania
W poniższej tabeli opisano sposób mapowania części żądań HTTP na właściwości pakietów PUBLISH MQTT. Aby uzyskać szczegółowe informacje, zapoznaj się z oryginalną dokumentacją.
| Część publikowania MQTT | Typ/wartości | Lokalizacja | Wymagane | Description |
|---|---|---|---|---|
| Nazwa tematu | Ciąg zakodowany procentowo | Zapytanie topic |
Tak | Temat MQTT do opublikowania w |
| QoS | 0 lub 1 | Zapytanie qos lub nagłówek mqtt-qos |
Nie [default = 1] | Poziom jakości usług (QoS) |
RETAIN flaga |
0 lub 1 | Zapytanie retain lub nagłówek mqtt-retain |
Nie [default = 0] | Czy zachować komunikat |
| Temat odpowiedzi | Ciąg zakodowany procentowo | Nagłówek mqtt-response-topic |
Nie. | Temat odpowiedzi w razie potrzeby |
| Dane korelacji | Ciąg base64 | Nagłówek mqtt-correlation-data |
Nie. | Dodatkowe dane do śledzenia |
| Właściwości użytkownika | Tablica JSON base64 | Nagłówek mqtt-user-properties |
Nie. | Niestandardowe właściwości użytkownika |
| Typ zawartości | Sznurek | Nagłówek content-type |
Nie. | Typ ładunku |
| Interwał wygaśnięcia komunikatu | Liczba całkowita bez znaku | Nagłówek mqtt-message-expiry |
Nie. | Okres przechowywania w sekundach |
| Wskaźnik formatu ładunku | 0 lub 1 | Nagłówek mqtt-payload-format-indicator |
Nie [default = 0] | Wskaźnik formatu |
| Ładunek | Bajty | Treść protokołu HTTP | Nie. | Treść wiadomości |
Notes:
- Wartości parametrów zapytania zastępują wartości nagłówków, jeśli oba te wartości są obecne.
- Kodowanie procentu jest wymagane dla tematu i tematu odpowiedzi.
- Dane korelacji muszą być zakodowane w formacie Base64.
Ogólne kroki dotyczące korzystania z publikowania HTTP
- Przygotuj token elementu nośnego identyfikatora entra firmy Microsoft na potrzeby uwierzytelniania.
- Skonstruuj żądanie HTTP
POSTdo punktu końcowego brokera MQTT usługi Event Grid. - Uwzględnij wymagane parametry zapytania, takie jak temat.
- Dodaj opcjonalne nagłówki dla funkcji QoS, flagi, tematu
RETAINodpowiedzi i właściwości użytkownika. - Dodaj ładunek jako treść PROTOKOŁU HTTP.
- Wyślij żądanie.
- Potwierdź dostarczanie za pośrednictwem dzienników i metryk w portalu usługi Event Grid.
Uwierzytelnianie i autoryzacja
- Publikowanie HTTP używa identyfikatora Entra firmy Microsoft do uwierzytelniania.
- Token elementu nośnego jest wymagany w nagłówku autoryzacji.
- Identyfikator obiektu Entra firmy Microsoft staje się identyfikatorem klienta MQTT.
- Model AuthN/AuthZ jest zgodny ze standardowymi połączeniami MQTT.
Routing i możliwość obserwowania
Metryki i dzienniki obejmują:
- Protokół:
http-publish - Identyfikator żądania
- Temat
- Źródłowy adres IP
- Podmiot zabezpieczeń autoryzacji
Najlepsze rozwiązania
- W miarę możliwości używaj małych nagłówka. Klucze nagłówków HTTP/2 są niewrażliwe na wielkość liter.
- Monitoruj przepływność, ponieważ komunikaty HTTP są zwykle większe niż bezpośrednie komunikaty MQTT.
- Zwróć uwagę, że publikowanie HTTP udostępnia limity przepływności z bezpośrednimi opublikowanymi komunikatami MQTT.
Ograniczanie prędkości
Liczba publikacji HTTP w stosunku do ogólnego limitu przydziału przepływności MQTT. Monitoruj użycie, aby uniknąć przekroczenia limitów.