MQTT-üzenetek átirányítása az Azure Event Gridben
Az Event Grid lehetővé teszi az MQTT-üzenetek átirányítását az Azure-szolgáltatásokba vagy webhookokra további feldolgozás céljából. Ennek megfelelően az IoT-adatok használatával többek között adatelemzéshez, tároláshoz és vizualizációkhoz is létrehozhat végpontok közötti megoldásokat, többek között használati esetekben.
Hogyan használhatom az útválasztási funkciót?
Az üzenetek átirányítása az ügyfelekről egy Azure-szolgáltatásba vagy az egyéni végpontra lehetővé teszi az adatok előnyeinek maximalizálását. Az alábbiakban néhány használati esetet vizsgáljuk a funkció előnyeinek kihasználásához:
- Adatelemzés: kinyerheti és elemezheti az ügyfelektől érkező átirányított üzeneteket a megoldás optimalizálása érdekében. Elemezze például a gépek telemetriáját, hogy előre jelezze, mikor ütemezze a karbantartást a hibák előtt, hogy elkerülje a késéseket és a további károkat.
- Kiszolgáló nélküli alkalmazások: kiszolgáló nélküli függvény aktiválása az ügyfelektől érkező átirányított üzenetek alapján. Ha például egy mozgásérzékelő észlel egy mozgást, küldjön egy értesítést a biztonsági személyzetnek, hogy kezelje azt.
- Adatvizualizációk: az ügyfelektől származó átirányított adatok vizualizációit hozhatja létre az adatok egyszerű megjelenítéséhez és megértéséhez, valamint a trendek és kiugró értékek kiemeléséhez.
Útválasztási konfiguráció:
Az útválasztási konfiguráció lehetővé teszi az összes MQTT-üzenet küldését az ügyfelektől egy Event Grid-névtér témakörbe vagy egy egyéni Event Grid-témakörbe. Miután az üzenetek a témakörbe kerülnek, konfigurálhat egy esemény-előfizetést a témakörből származó üzenetek felhasználására. A konfiguráció eléréséhez kövesse az alábbi magas szintű lépéseket:
- Névtér témakör útválasztási célként:
- Hozzon létre egy Event Grid-névtértémakört , amely az összes MQTT-üzenetet átirányítja.
- Hozzon létre egy leküldéses típusú esemény-előfizetést, amely átirányítja ezeket az üzeneteket az egyik támogatott Azure-szolgáltatásba, egyéni webhookba vagy üzenetsor típusú esemény-előfizetésbe, hogy közvetlenül a névtér témaköréből lekérje az üzeneteket az alkalmazáson keresztül.
- Állítsa be az első lépésben létrehozott témakörre hivatkozó útválasztási konfigurációt .
- Egyéni témakör útválasztási célként:
- Hozzon létre egy egyéni Event Grid-témakört , amely az összes MQTT-üzenetet átirányítja. Ennek a témakörnek teljesítenie kell az Event Grid egyéni témakörre vonatkozó követelményeit az útválasztáshoz
- Hozzon létre egy Event Grid-esemény-előfizetést , amely átirányítja ezeket az üzeneteket valamelyik támogatott Azure-szolgáltatáshoz vagy egyéni végponthoz.
- Állítsa be az első lépésben létrehozott témakörre hivatkozó útválasztási konfigurációt .
Feljegyzés
Ha letiltja a nyilvános hálózati hozzáférést a névtéren, az MQTT-útválasztás meghiúsul.
Különbség a névtértémakörök és az egyéni témakörök között útválasztási célként
Az alábbi táblázat a névtértémakörök és az egyéni témakörök közötti különbséget mutatja útválasztási célként. Az egyes Event Grid-erőforrások kvótáinak és korlátainak részletes lebontásához tekintse meg a Kvóták és korlátok című témakört.
Összehasonlítási pont | Névtér témakör | Egyéni témakör |
---|---|---|
Átfutás | Magas, legfeljebb 40 MB/s (bejövő forgalom) és 80 MB/s (kimenő forgalom) | Alacsony, legfeljebb 5 MB/s (bejövő és kimenő) |
Lekéréses kézbesítés | Igen | |
Leküldéses kézbesítés az Event Hubsba | Igen | Igen |
Leküldéses kézbesítés az Azure-szolgáltatásokba (Függvények, Webhookok, Service Bus-üzenetsorok és témakörök, hibrid kapcsolatok továbbítása és tárolási üzenetsorok) | Igen | |
Üzenetmegőrzés | 7 nap | 1 nap |
Szerepkör-hozzárendelési követelmény | Nem szükséges, mivel az MQTT-közvetítő és a névtér témaköre ugyanabban a névtérben van | Kötelező, mivel az MQTT-közvetítő funkciót futtató névtér és az egyéni témakör különböző erőforrások |
Az Event Grid egyéni témakörkövetelményei az útválasztáshoz
Az útválasztáshoz használt Egyéni Event Grid-témakörnek az alábbi követelményeknek kell megfelelnie:
- A cloud event schema v1.0 használatához be kell állítani
- A névtérrel megegyező régióban kell lennie.
- Az útválasztási konfiguráció alkalmazása előtt hozzá kell rendelnie az "Event Grid-adatküldő" szerepkört saját magához vagy a kiválasztott felügyelt identitáshoz az Event Grid egyéni témakörében.
- A portálon nyissa meg a létrehozott Event Grid-témakörerőforrást.
- A "Hozzáférés-vezérlés (IAM)" menüelemben válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget.
- A "Szerepkör" lapon válassza az "Event Grid-adatküldő", majd a Tovább gombot.
- A "Tagok" lapon válassza a +Tagok kijelölése lehetőséget, majd írja be az AD-felhasználónevet a megjelenő "Kiválasztás" mezőbe (például user@contoso.com).
- Válassza ki az AD-felhasználónevet, majd válassza a "Véleményezés + hozzárendelés" lehetőséget
Az Azure Portal konfigurálása
Az útválasztás konfigurálásához kövesse az alábbi lépéseket:
- Lépjen a névtérre az Azure Portalon.
- Az Útválasztás területen ellenőrizze az Útválasztás engedélyezése jelölőnégyzetet.
- A témakör típusa alatt válassza a Névtér vagy az Egyéni témakör lehetőséget
- A témakör alatt válassza ki azt a témakört, amelyet az MQTT-üzenetek átirányításához hozott létre.
- Egyéni témakörök esetén a lista csak azokat a témaköröket jeleníti meg, amelyek megfelelnek az Event Grid útválasztásra vonatkozó egyéni témakörkövetelményeinek
- Ha egyéni témakör van kiválasztva, megjelenik a Felügyelt identitás kézbesítéshez szakasz. Válassza az alábbi lehetőségek egyikét az MQTT-közvetítő hitelesítéséhez használt identitáshoz, miközben az MQTT-üzeneteket az egyéni témakörbe küldi:
- Nincs: ebben az esetben hozzá kell rendelnie az "Event Grid-adatküldő" szerepkört saját magához az egyéni témakörben.
- Rendszer által hozzárendelt identitás: ebben az esetben előfeltételként engedélyeznie kell a rendszer által hozzárendelt identitást a névtéren , és hozzá kell rendelnie az "EventGrid Data Sender" szerepkört az egyéni témakör rendszer által hozzárendelt identitásához.
- Felhasználó által hozzárendelt identitás: ebben az esetben előfeltételként engedélyeznie kell a felhasználó által hozzárendelt identitást a névtéren , és hozzá kell rendelnie az "EventGrid Data Sender" szerepkört az egyéni témakör kiválasztott identitásához.
- Ha a felhasználó által hozzárendelt identitás ki van jelölve, megjelenik egy legördülő lista, amely lehetővé teszi a kívánt identitás kiválasztását.
- Válassza az Alkalmazás lehetőséget.
A bővítési konfigurációs utasításokért tekintse meg a Bővítési portál konfigurációját.
Az Azure CLI konfigurálása
az resource create --resource-type Microsoft.EventGrid/namespaces --id /subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/namespaces/<Namespace Name> --is-full-object --api-version 2023-06-01-preview --properties @./resources/NS.json
NS.json
"properties": {
"inputSchema": "CloudEventSchemaV1_0",
"topicSpacesConfiguration": {
"state": "Enabled",
"routeTopicResourceId": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/topics/<Event Grid topic name>",
"routingIdentityInfo": {
"type": "UserAssigned", //Allowed values: None, SystemAssigned, UserAssigned
"userAssignedIdentity": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<User-assigned identity>" //needed only if UserAssigned was the value of type
},
}
}
A bővítési konfigurációs utasításokért tekintse meg a Bővítési parancssori felület konfigurációját.
MQTT-üzenetek útválasztási viselkedése
Míg az MQTT-üzeneteket egyéni témakörökre irányítja, az Event Grid tartós kézbesítést biztosít, mivel az egyes üzeneteket legalább egyszer azonnal megpróbálja kézbesíteni. Ha hiba történt, az Event Grid vagy újrapróbálkozza a kézbesítést, vagy elveti az átirányítandó üzenetet. Az Event Grid nem garantálja az eseménykézbesítés megrendelését, így előfordulhat, hogy az előfizetők rendelésen kívül kapják meg őket.
Az alábbi táblázat az MQTT-üzenetek útválasztásának viselkedését ismerteti különböző hibák alapján.
Hiba | Hibaleírás | Működés |
---|---|---|
TopicNotFoundError | A rendszer törölte azt az egyéni témakört, amely az MQTT által irányított üzenetek fogadására lett konfigurálva. | Az Event Grid elveti az irányítandó MQTT-üzenetet. |
AuthenticationError | A rendszer törölte az MQTT által irányított üzenetek célként konfigurált egyéni témakör Event Grid-adatküldő szerepkörét. | Az Event Grid elveti az irányítandó MQTT-üzenetet. |
TooManyRequests | Az MQTT által átirányított üzenetek másodpercenkénti száma meghaladja az egyéni témakör közzétételi korlátját. | Az Event Grid újrapróbálkozza az MQTT-üzenet átirányítását. |
ServiceError | Váratlan kiszolgálóhiba a kiszolgáló működési oka miatt. | Az Event Grid újrapróbálkozza az MQTT-üzenet átirányítását. |
Az újrapróbálkozás során az Event Grid exponenciális backoff újrapróbálkozási szabályzatot használ az MQTT-üzenetek útválasztásához. Az Event Grid az alábbi ütemezés szerint újrapróbálkozásokat hajt végre a legjobb munkamennyiség alapján:
- 10 másodperc
- 30 másodperc
- 1 perc
- 5 perc
- 10 perc
- 30 perc
- 1 óra
- 3 óra
- 6 óra
- 12 óránként
Ha egy átirányításra váró MQTT-üzenet sikeres volt, az Event Grid a lehető legjobb erőfeszítéssel megpróbálja eltávolítani az üzenetet az újrapróbálkozási üzenetsorból, de előfordulhat, hogy az ismétlődések továbbra is érkeznek.
Következő lépések:
Az útválasztásról az alábbi cikkekben olvashat bővebben:
Gyorsútmutató:
- Oktatóanyag: MQTT-üzenetek átirányítása az Azure Event Hubsba névtértémák használatával
- Oktatóanyag: MQTT-üzenetek átirányítása az Azure Functionsbe egyéni témakörök használatával