Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A protokollok közötti együttműködés támogatása érdekében az IoT Hub az összes eszközre irányuló protokollban elérhető üzenetkezelési funkciók közös készletét határozza meg. Ezek a funkciók az eszközről a felhőbe irányuló és a felhőből az eszközre irányuló üzenetekbenis használhatók.
Feljegyzés
A cikkben említett egyes funkciók, például a felhő–eszköz irányú üzenetküldés, az ikereszközök és az eszközfelügyelet csak a standard szintű IoT Hubon érhető el. Az alapszintű és standard/ingyenes IoT Hub-szintekkel kapcsolatban további információkért lásd Válassza ki a megoldása számára megfelelő IoT Hub-szintet és -méretet.
Az IoT Hub streamelési üzenetkezelési mintával valósítja meg az eszközről a felhőbe irányuló üzenetküldést. Az IoT Hub eszközről felhőbe irányuló üzenetei jobban hasonlítanak az Event Hubs-eseményekre, mint a Service Bus-üzenetekre, mivel nagy mennyiségű esemény halad át a szolgáltatáson, amelyet több olvasó is elolvashat.
Az IoT Hub-üzenetek a következőkből állnak:
A rendszertulajdonságok előre meghatározott készlete, a jelen cikk későbbi részében leírtak szerint.
Alkalmazástulajdonságok halmaza. Az alkalmazás által definiálható és elérhető sztringtulajdonságok szótára anélkül, hogy deszerializálnia kellene az üzenettörzset. Az IoT Hub soha nem módosítja ezeket a tulajdonságokat.
Üzenettörzs, amely bármilyen típusú adat lehet.
Minden eszközprotokoll különböző módokon valósítja meg a beállítási tulajdonságokat. További információ: Kommunikáció IoT Hubbal az MQTT protokoll használatával , és Kommunikáció az IoT Hubbal az AMQP Protokoll használatával.
Ha https protokoll használatával küld eszközről felhőbe irányuló üzeneteket, vagy felhőből az eszközre irányuló üzeneteket küld, a tulajdonságnevek és értékek csak ASCII alfanumerikus karaktereket tartalmazhatnak, valamint ! # $ % & ' * + - . ^ _ ` | ~ .
Az IoT Hubon keresztüli eszközről felhőbe irányuló üzenetkezelés a következő jellemzőkkel rendelkezik:
Az eszközről a felhőbe irányuló üzenetek tartósak, és legfeljebb hét napig megmaradnak az IoT Hub alapértelmezett üzenet-/eseményvégpontjaiban .
Az eszközről a felhőbe irányuló üzenetek legfeljebb 256 KB méretűek lehetnek, és kötegekbe csoportosíthatók az üzenetek optimalizálása érdekében. A kötegek legfeljebb 256 KB-osak lehetnek.
Az IoT Hub nem engedélyezi az tetszőleges particionálást. Az eszközről a felhőbe irányuló üzenetek particionálása a kiinduló eszközazonosítójuk alapján van.
Az IoT Hub hozzáférésének szabályozása a Microsoft Entra ID használatával című témakörben leírtak szerint az IoT Hub eszközenkénti hitelesítést és hozzáférés-vezérlést tesz lehetővé.
Az alkalmazás tulajdonságaiba beemelhető információkkal bélyegzheti az üzeneteket. További információkért tekintse meg az eszközről a felhőbe irányuló IoT Hub-üzenetek üzeneteinek kibővítése című témakört.
Feljegyzés
Minden IoT Hub-protokoll egy üzenet tartalomtípus-tulajdonságot biztosít, amelyet tiszteletben kell tartani az adatok egyéni végpontokra való átirányításakor. Ha megfelelően szeretné kezelni az adatokat a célhelyen (például a JSON-t a Base64 kódolású bináris adatok helyett elemezhető sztringként kezeli), adja meg az üzenet megfelelő tartalomtípusát és karakterkészletét.
Ha az üzenettörzset egy IoT Hub-útválasztási lekérdezésben szeretné használni, adjon meg egy érvényes JSON-objektumot az üzenethez, és állítsa be az üzenet tartalomtípus-tulajdonságát a következőre application/json;charset=utf-8: .
Az alábbi példa egy érvényes, nem módosítható üzenettörzset mutat be:
{
"timestamp": "2022-02-08T20:10:46Z",
"tag_name": "spindle_speed",
"tag_value": 100
}
Az eszközről a felhőbe irányuló üzenetek rendszertulajdonságai
| Tulajdonság | Leírás | Felhasználó által beállítható? | Kulcsszó az útválasztási lekérdezéshez |
|---|---|---|---|
| üzenetazonosító | A kérelem-válasz mintákhoz használt üzenet felhasználó által beállított azonosítója. Formátum: Egy kis- és nagybetű érzékeny karakterlánc (legfeljebb 128 karakter hosszú) ASCII 7 bites alfanumerikus karakterekkel és - : . + % _ # * ? ! ( ) , = @ ; $ '. |
Igen | üzenetazonosító |
| iothub-enqueuedtime | Az IoT Hub által a eszköztől a felhőbe érkező üzenet fogadásának dátuma és időpontja. | Nem | enqueuedTime |
| felhasználó-azonosító | Az üzenetek eredetének megadására használt azonosító. | Igen | Felhasználói azonosító |
| iothub-connection-eszköz-azonosító | Az IoT Hub által az eszközről a felhőbe irányuló üzenetekre beállított azonosító. Az üzenetet küldő eszköz eszközazonosítóját tartalmazza. | Nem | kapcsolódóEszközAzonosító |
| iothub-csatlakozás-modul-azonosító | Az IoT Hub által az eszközről a felhőbe irányuló üzenetekre beállított azonosító. Tartalmazza az üzenetet küldő eszköz modulazonosítóját . | Nem | kapcsolatModulAzonosító |
| iothub-kapcsolat-hitelesítés-generáció-id | Az IoT Hub által az eszközről a felhőbe irányuló üzenetekre beállított azonosító. Tartalmazza az üzenetet küldő eszköz connectionDeviceGenerationId azonosítóját (az eszköz identitástulajdonságainak megfelelően). | Nem | csatlakozóEszközGenerációAzonosító |
| iothub-kapcsolat-hitelesítési módszer | Az IoT Hub által az eszközről a felhőbe irányuló üzeneteken beállított hitelesítési módszer. Ez a tulajdonság információkat tartalmaz az üzenetet küldő eszköz hitelesítéséhez használt hitelesítési módszerről. | Nem | kapcsolatHitelesítésiMódszer |
| iothub-app-iothub-létrehozási-idő-utc | Lehetővé teszi az eszköz számára, hogy az adatokat kötegben küldve elküldje az esemény létrehozásának időpontját. | Igen | létrehozási időpont UTC szerint |
| iothub-létrehozási-idő-utc | Lehetővé teszi az eszköz számára, hogy egyszerre egy üzenet küldésekor küldjön eseménylétrehozési időt. | Igen | létrehozási időpont UTC szerint |
| dt-adatséma | Az IoT Hub ezt az értéket az eszközről a felhőbe irányuló üzenetekre állítja be. Az eszközkapcsolatban beállított eszközmodell-azonosítót tartalmazza. | Nem | $dt-adatséma |
| téma dt | Az eszközről a felhőbe irányuló üzeneteket küldő összetevő neve. | Igen | $dt tárgy |
Az eszközről a felhőbe irányuló üzenetek alkalmazástulajdonságai
Az alkalmazástulajdonságokat gyakran használják arra, hogy az eszköz időbélyeget küldjön a iothub-creation-time-utc tulajdonság segítségével, amely rögzíti, mikor küldi el az eszköz az üzenetet. Az időbélyeg formátumának utc-nek kell lennie, és nincs időzónára vonatkozó információ. Például érvényes, 2021-04-21T11:30:16Z de 2021-04-21T11:30:16-07:00 érvénytelen.
{
"applicationId":"00001111-aaaa-2222-bbbb-3333cccc4444",
"messageSource":"telemetry",
"deviceId":"sample-device-01",
"schema":"default@v1",
"templateId":"urn:modelDefinition:mkuyqxzgea:e14m1ukpn",
"enqueuedTime":"2021-01-29T16:45:39.143Z",
"telemetry":{
"temperature":8.341033560421833
},
"messageProperties":{
"iothub-creation-time-utc":"2021-01-29T16:45:39.021Z"
},
"enrichments":{}
}
A felhőből az eszközre irányuló üzenetek rendszertulajdonságai
| Tulajdonság | Leírás | Felhasználó által beállítható? |
|---|---|---|
| üzenetazonosító | A kérelem-válasz mintákhoz használt üzenet felhasználó által beállított azonosítója. Formátum: Egy kis- és nagybetű érzékeny karakterlánc (legfeljebb 128 karakter hosszú) ASCII 7 bites alfanumerikus karakterekkel és - : . + % _ # * ? ! ( ) , = @ ; $ '. |
Igen |
| sorszám | Az IoT Hub által az egyes felhőből eszközre irányuló üzenetekhez hozzárendelt szám (eszközsoronként egyedi). | Nem |
| felhasználóként a(z) | A felhőből az eszközre irányuló üzenetekben megadott célhely. | Nem |
| abszolút lejárati idő | Az üzenet lejáratának dátuma és időpontja. | Igen |
| korrelációs azonosító | Egy válaszüzenet sztringtulajdonsága, amely általában a kérés MessageId azonosítóját tartalmazza, kérés-válasz mintákban. | Igen |
| felhasználó-azonosító | Az üzenetek eredetének megadására használt azonosító. Amikor az IoT Hub üzeneteket hoz létre, a felhasználói azonosító az IoT Hub neve. | Igen |
| iothub-ack | Visszajelzési üzenetgenerátor. Ez a tulajdonság a felhőből az eszközre irányuló üzenetekben arra szolgál, hogy kérje meg az IoT Hubot, hogy visszajelzési üzeneteket hozzon létre az üzenet eszköz általi felhasználása miatt. Lehetséges értékek: nincs (alapértelmezett): nem jön létre visszajelzési üzenet, pozitív: visszajelzést kap, ha az üzenet befejeződött, negatív: visszajelzést kap, ha az üzenet lejárt (vagy elérte a maximális kézbesítési számot) anélkül, hogy az eszköz befejezte volna, vagy megtelt: pozitív és negatív is. | Igen |
Rendszertulajdonságok nevei
A rendszertulajdonságok neve attól függően változik, hogy melyik végpontra irányítják az üzeneteket.
| Rendszertulajdonság neve | Event Hubs | Azure Storage | Service Bus | Event Grid |
|---|---|---|---|---|
| Üzenetazonosító | üzenetazonosító | üzenetazonosító | ÜzenetAzonosító | üzenetazonosító |
| Felhasználói azonosító | felhasználó-azonosító | Felhasználói azonosító | UserId | felhasználó-azonosító |
| Kapcsolati eszköz azonosítója | iothub-connection-eszköz-azonosító | kapcsolódóEszközAzonosító | iothub-connection-eszköz-azonosító | iothub-connection-eszköz-azonosító |
| Kapcsolatmodul azonosítója | iothub-csatlakozás-modul-azonosító | kapcsolatModulAzonosító | iothub-csatlakozás-modul-azonosító | iothub-csatlakozás-modul-azonosító |
| Kapcsolat hitelesítési azonosító generálás | iothub-kapcsolat-hitelesítés-generáció-id | csatlakozóEszközGenerációAzonosító | iothub-kapcsolat-hitelesítés-generáció-id | iothub-kapcsolat-hitelesítés-generáció-id |
| Kapcsolati hitelesítési módszer | iothub-kapcsolat-hitelesítési módszer | kapcsolatHitelesítésiMódszer | iothub-kapcsolat-hitelesítési módszer | iothub-kapcsolat-hitelesítési módszer |
| tartalomtípus | tartalomtípus | tartalomtípus | Tartalomtípus | iothub-tartalomtípus |
| tartalomkódolás | tartalomkódolás | tartalomkódolás | Tartalomkódolás | iothub-content-encoding |
| iothub-enqueuedtime | iothub-enqueuedtime | enqueuedTime | n/a | iothub-enqueuedtime |
| Korrelációazonosító | korrelációs azonosító | correlationId | Korrelációazonosító | korrelációs azonosító |
| dt-adatséma | dt-adatséma | dt-adatséma | dt-adatséma | dt-adatséma |
| téma dt | téma dt | téma dt | téma dt | téma dt |
Az üzenet mérete
Az IoT Hub protokollfüggetlen módon méri az üzenetek méretét, csak a tényleges hasznos adatokat figyelembe véve. A bájtokban megadott méret kiszámítása a következő értékek összegeként történik:
- A törzs mérete bájtban.
- Az üzenetrendszer-tulajdonságok összes értékének bájtban megadott mérete.
- A felhasználói tulajdonságnevek és -értékek bájtban megadott mérete.
A tulajdonságnevek és -értékek ASCII-karakterekre korlátozódnak, így a sztringek hossza bájtban egyenlő.
Hamisítás elleni tulajdonságok
Az eszközhamisítás elkerülése érdekében az IoT Hub az alábbi tulajdonságokkal bélyegezi az összes üzenetet:
- iothub-connection-device-id
- iothub-connection-auth-generation-id (IoT-hub csatlakozás hitelesítési generációs azonosító)
- iothub-kapcsolat-hitelesítési-módszer
Az első kettő az eszköz identitástulajdonságainak megfelelően tartalmazza a származó eszköz deviceId és generationId azonosítóját.
Az iothub-connection-auth metódus tulajdonság egy szerializált JSON-objektumot tartalmaz a következő tulajdonságokkal:
{
"scope": "{ hub | device | module }",
"type": "{ symkey | sas | x509 }",
"issuer": "iothub"
}
Következő lépések
- Az IoT Hub üzenetméretkorlátairól további információt az IoT Hub kvótái és szabályozása című témakörben talál.
- Az IoT Hub-üzenetek különböző programozási nyelvekben való létrehozásáról és olvasásáról a következő oktatóanyagban olvashat: Telemetriai adatok küldése IoT Plug and Play-eszközről az Azure IoT Hubba.
- Az IoT Hub által létrehozott nem telemetriai események szerkezetéről az Azure IoT Hub nem telemetriai eseménysémáiban olvashat.