Share via


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.

Az MQTT-üzenet útválasztásának diagramja.

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:

Az MQTT-üzenet névtértémakörökhöz való útválasztásának diagramja.

Az MQTT-üzenetek egyéni témakörökhöz való útválasztásának diagramja.

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 vagyaz 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.
  • 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.

Képernyőkép az útválasztási konfigurációról a portálon keresztül.

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ó:

Fogalmak: