Üzenetdúsítások eszközről felhőbe IoT Hub üzenetekhez

Az üzenetek bővítése az IoT-központ azon képessége, hogy további információkkal bélyegzheti meg az üzeneteket, mielőtt az üzeneteket elküldené a kijelölt végpontra. Az üzenetdúsítások használatának egyik oka, hogy olyan adatokat is tartalmaz, amelyek a továbbfeldolgozás egyszerűsítésére használhatók. Az eszköz telemetriai üzeneteinek ikereszközcímkével való bővítése például csökkentheti az ügyfelek terhelését, így ikereszköz API-hívásokat indíthat ezekre az információkra.

Üzenetdúsítási folyamat

Az üzenetek bővítése három fő elemből áll:

  • Bővítés neve vagy kulcsa

  • Érték

  • Egy vagy több végpont , amelyre a bővítést alkalmazni kell.

A kulcs egy sztring. A kulcsok csak alfanumerikus karaktereket vagy speciális karaktereket tartalmazhatnak: kötőjel (-), aláhúzás (_) és pont (.).

Az érték a következő példák bármelyike lehet:

  • Bármely statikus sztring. A dinamikus értékek, például a feltételek, a logika, a műveletek és a függvények nem engedélyezettek. Ha például egy több ügyfél által használt SaaS-alkalmazást fejleszt, minden ügyfélhez hozzárendelhet egy azonosítót, és elérhetővé teheti az adott azonosítót az alkalmazásban. Amikor az alkalmazás fut, IoT Hub lepecsételi az eszköz telemetriai üzeneteit az ügyfél azonosítójával, ami lehetővé teszi az üzenetek eltérő feldolgozását az egyes ügyfelek esetében.

  • Az üzenetet küldő IoT Hub neve. Ez az érték $iothubname.

  • Az ikereszköz adatai, például az elérési útja. Ilyen például $twin.tags.field és $twin.tags.latitude.

    Megjegyzés

    Jelenleg csak $iothubname, $twin.tags, $twin.properties.desired és $twin.properties.reported támogatott változók az üzenetdúsításhoz. Emellett csak a primitív típusok támogatottak a bővítéshez. Az üzenetek nem bővíthetők objektumtípusokkal.

Az üzenetdúsítások alkalmazástulajdonságként lesznek hozzáadva a kiválasztott végpont(ok)nak küldött üzenetekhez.

Bővítések alkalmazása

Az üzenetek bármilyen, IoT Hub üzenetirányítás által támogatott adatforrásból származhatnak, beleértve az alábbi példákat:

  • eszköz telemetriai adatai, például hőmérséklet vagy nyomás
  • ikereszköz-változásértesítések – változások az ikereszközben
  • az eszköz életciklusának eseményei, például az eszköz létrehozása vagy törlése

Bővíthet olyan üzeneteket, amelyek egy IoT Hub beépített végpontjára kerülnek, vagy olyan üzenetekre, amelyek egyéni végpontokra, például az Azure Blob Storage-ra, a Service Bus-üzenetsorra vagy egy Service Bus-témakörre lesznek irányítva.

Az Event Gridben közzétett üzenetekhez is hozzáadhat bővítéseket, ha először létrehoz egy Event Grid-előfizetést az eszköz telemetriai üzenettípusával. Az előfizetés alapján létrehozunk egy alapértelmezett útvonalat Azure IoT Hub a telemetriához. Ez az egyetlen útvonal képes kezelni az összes Event Grid-előfizetést. Ezután konfigurálhatja a végpont bővítési funkcióját a IoT Hub Üzenet útválasztása szakasz Üzenetek bővítése lapján. További információ az eseményekre az Event Grid használatával történő reagálásról: Iot Hub és Event Grid.

A bővítések végpontonként vannak alkalmazva. Ha egy adott végponthoz öt dúsítást ad meg, a végpontra irányuló összes üzenet ugyanazzal az öt bővítéssel lesz lepecsételve.

A bővítések a következő módszerekkel konfigurálhatók:

Metódus Parancs
Portál Azure Portal Az üzenet bővítési oktatóanyagának megtekintése
Azure CLI az iot hub üzenetbővítés
Azure PowerShell Add-AzIotHubMessageEnrichment

Az üzenetdúsítások hozzáadása nem ad késést az üzenet útválasztásához.

Az üzenetdúsítások kipróbálásához tekintse meg az üzenetdúsítási oktatóanyagot

Korlátozások

  • IoT Hubonként legfeljebb 10 bővítést adhat hozzá ezekhez a központokhoz a standard vagy alapszintű szinten. Az ingyenes szinten lévő IoT Hubok esetében legfeljebb 2 bővítést adhat hozzá.

  • Bizonyos esetekben, ha egy üzenetet egy címkére vagy tulajdonságra beállított értékkel bővít az ikereszközben, az érték a megadott ikereszköz-elérési úttal lesz lebélyegzve. Ha például egy bővítési érték $twin.tags.field értékre van állítva, az üzeneteket a rendszer a "$twin.tags.field" sztringgel bélyegezi meg, nem pedig az ikerpéldányból származó mező értékét. Ez a viselkedés a következő esetekben fordul elő:

    • Az IoT Hub az alapszinten található. Az alapszintű IoT Hubok nem támogatják az ikereszközöket.

    • Az IoT Hub a standard szinten van, de a bővítés értékéhez használt ikereszköz-elérési út nem létezik. Ha például a bővítési érték $twin.tags.location értékre van állítva, és az ikereszköz nem rendelkezik helytulajdonságokkal a címkék alatt, az üzenet a "$twin.tags.location" sztringgel lesz lebélyegzve.

    • Az IoT Hub a standard szinten található, de a bővítés értékéhez használt ikereszköz-elérési út egyszerű tulajdonság helyett egy objektumra lesz feloldva. Ha például a bővítési érték $twin.tags.location értékre van állítva, és a címkék alatti helytulajdonság egy olyan objektum, amely gyermektulajdonságokat (például {"building": 43, "room": 503}) tartalmaz, az üzenet a "$twin.tags.location" sztringgel lesz lebélyegzve.

  • Frissítések egy ikereszközre akár öt percig is eltarthat, amíg a megfelelő bővítési érték megjelenik.

  • Az üzenet teljes mérete, beleértve a bővítéseket is, nem haladhatja meg a 256 KB-ot. Ha egy üzenet mérete meghaladja a 256 KB-ot, az IoT Hub elveti az üzenetet. A IoT Hub metrikákkal azonosíthatja és elháríthatja az üzenetek elvetésekor előforduló hibákat. Figyelheti például a nem kompatibilis (d2c.telemetry.egress.invalid) telemetriai üzeneteket az útválasztási metrikákban. További információ: Monitorozási IoT Hub.

  • Az üzenetdúsítások nem vonatkoznak a digitális ikerpéldány-változási eseményekre.

  • A modulok nem öröklik az ikercímkéket a megfelelő eszközeikről. Az eszközmodulokból (például IoT Edge modulokból) származó üzenetek bővítéseinek az ikermodulon beállított ikercímkéket kell használniuk.

Díjszabás

Az üzenet bővítési lehetőségei felár nélkül érhetők el. Jelenleg díjat számítunk fel, amikor üzenetet küld egy IoT Hubnak. Az üzenetért csak egyszer kell fizetnie, még akkor is, ha az üzenet több végpontra kerül.

Következő lépések

Az üzenetek IoT Hubra való átirányításáról az alábbi cikkekben talál további információt: