Eszközkapcsolati események megrendelése az Azure IoT Hubról az Azure Cosmos DB használatával
Azure Event Grid segítségével eseményalapú alkalmazásokat hozhat létre, és egyszerűen integrálhatja az IoT-eseményeket az üzleti megoldásokba. Ez a cikk végigvezeti egy beállításon a Cosmos DB, a Logic App, a IoT Hub Events és egy szimulált Raspberry Pi használatával egy eszköz kapcsolati és leválasztási eseményeinek gyűjtéséhez és tárolásához.
Az eszköz futásának pillanatától kezdve a műveletek sorrendje aktiválódik:
Az IoT Hub eszközkulcsát használó Pi-eszköz elindul, majd le van állítva
Egy IoT Hub esemény rögzíti az eszköztevékenységet, majd HTTP-kérést küld a logikai alkalmazásnak
A logikai alkalmazás egy beállított feltétel alapján dolgozza fel a HTTP-kérést
A Logikai alkalmazás egy új dokumentumba naplózza a kapcsolati vagy leválasztási eseményeket a Cosmos DB-ben
Előfeltételek
Aktív Azure Cosmos DB for NoSQL-fiók. Ha még nem hozott létre egyet, tekintse meg az Adatbázisfiók létrehozása című témakört.
Egy gyűjtemény az adatbázisban. Az útmutatóért lásd: Gyűjtemény hozzáadása . A gyűjtemény létrehozásakor használja
/id
a partíciókulcsot.Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, a kezdés előtt hozzon létre egyet ingyen .
Egy IoT Hub az Azure-előfizetése alatt. Hozzon létre egyet a parancssori felülettel vagy a Azure Portal.
Logikai alkalmazás létrehozása
Hozzunk létre egy logikai alkalmazást, és adjunk hozzá egy Event Grid-eseményindítót, amely figyeli a virtuális gép erőforráscsoportját.
Logikai alkalmazás erőforrás létrehozása
A Azure Portal válassza a +Erőforrás létrehozása, majd az Integráció, majd a Logikai alkalmazás lehetőséget.
Töltse ki az űrlapot egy új logikai alkalmazás létrehozásához, amely a következőket tartalmazza:
Az Ön előfizetése
Az erőforráscsoport (vagy hozzon létre egy újat)
Az előfizetésben egyedi logikai alkalmazásnév
Az IoT Hub régiója
A Log Analytics engedélyezésére szolgáló nem
A használat csomagtípusa
Megjegyzés
A Használati csomag típusa az a beállítás, amely lehetővé teszi a logikai alkalmazás tervezőjének használatát a felhasználói felületen. Ha a Standard (alapértelmezett) lehetőséget választja, létre kell hoznia egy új munkafolyamatot, hogy a Logikai alkalmazás tervezője elérhetővé váljon.
A konfiguráció áttekintéséhez válassza a Véleményezés + Létrehozás lehetőséget, majd a Létrehozás lehetőséget a logikai alkalmazás létrehozásához.
Ezzel létrehozott egy Azure-erőforrást a logikai alkalmazás számára. Miután az Azure üzembe helyezi a logikai alkalmazást, válassza az Erőforrás megnyitása lehetőséget. A logikai alkalmazás tervezője a gyakori minták sablonjait jeleníti meg, így gyorsabban kezdheti el az első lépéseket.
A Logikai alkalmazás tervezőjében görgessen addig, amíg meg nem jelenik a Sablonok szakasz, majd válassza az Üres logikai alkalmazás lehetőséget, hogy a logikai alkalmazást az alapoktól kezdve felépíthesse.
Eseményindító kiválasztása
A trigger a logikai alkalmazást elindító konkrét esemény. Ebben az oktatóanyagban a munkafolyamatot aktiváló trigger HTTP-kapcsolaton keresztül fogad egy kérést.
Az összekötők és triggerek keresősávjában írja be a HTTP kifejezést, és nyomja le az Enter billentyűt.
Válassza ki a kérést: Http-kérés fogadása eseményindítóként.
Válassza a Séma létrehozása hasznosadat-minta használatával lehetőséget.
Illessze be a következő JSON-mintakódot a szövegmezőbe, majd válassza a Kész lehetőséget.
Ez a JSON csak sablonként használatos, így a pontos értékek nem fontosak.
[{ "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd", "topic": "/SUBSCRIPTIONS/DEMO5CDD-8DAB-4CF4-9B2F-C22E8A755472/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB", "subject": "devices/Demo-Device-1", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-07-03T23:20:11.6921933+00:00", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "MYIOTHUB", "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e", "moduleId": "" }, "dataVersion": "1", "metadataVersion": "1" }]
Feltétel létrehozása
A feltételek segítenek adott műveletek futtatásában az adott feltétel átadása után. Ebben a cikkben a feltétel annak ellenőrzése, hogy az eventType eszköz csatlakoztatva van-e, vagy az eszköz leválasztva van-e. Az eventType igaz állapotában végrehajtott művelet egy dokumentum létrehozása az Azure Cosmos DB-ben. Ez a feltétel a Logikai alkalmazás tervezőjében jön létre.
Válassza az + Új lépés, majd a Beépített lap lehetőséget, majd keresse meg és válassza ki a Feltétel nevű vezérlőt.
A feltételben módosítsa az És értéket Vagy értékre, mivel egyetlen elemzésben szeretnénk rögzíteni a kapcsolati eseményeket vagy a leválasztási eseményeket.
Válassza ki az Érték kiválasztása mezőben, és megjelenik egy előugró ablak, amely a Dinamikus tartalmat jeleníti meg – a kijelölhető mezőket.
Válassza az eventType lehetőséget. Az előugró ablak bezárul, és megjelenik a Törzs a Kimenet kiválasztása az előző lépésekből elem automatikusan elemében. A feltételes utasítás újbóli megnyitásához válassza a Feltétel lehetőséget.
Tartsa meg az értékével egyenlő értéket .
A sor utolsó értékeként írja be a Microsoft.Devices.DeviceConnected kifejezést.
Másik sor hozzáadásához válassza a + Hozzáadás lehetőséget.
Ez a második sor hasonló az első sorhoz, kivéve, ha leválasztási eseményeket keresünk.
Használja az eventType értéket, az egyenlő, a sorértékekhez pedig a Microsoft.Devices.DeviceDisconnected értéket.
A ha igaz párbeszédpanelen kattintson a Művelet hozzáadása elemre.
Keresse meg a Cosmos DB-t, és válassza az Azure Cosmos DB – Dokumentum létrehozása vagy frissítése (V3) lehetőséget
Megjelenik a Dokumentum létrehozása vagy frissítése (V3) panel. Adja meg az alábbi értékeket a mezőkhöz:
Azure Cosmos DB-fiók neve: {Fióknév hozzáadása}
Adatbázis-azonosító: ToDoList
Gyűjteményazonosító: Elemek
Dokumentum: Válasszon
Current item
a dinamikus tartalomparaméterek listájábólMentse a logikai alkalmazást.
A HTTP URL-cím másolása
Mielőtt kilép a Logic Apps Tervező, másolja ki azt az URL-címet, amelyet a logikai alkalmazás egy eseményindítót figyel. Erre az URL-címre az Event Grid konfigurálásához lesz szükség.
Bontsa ki a HTTP-kérés fogadása eseményindító konfigurációs mezőjét a kiválasztásával.
Másolja ki a HTTP POST URL értékét a mellette lévő másolás gombra kattintva.
Mentse ezt az URL-címet, hogy a következő szakaszban használhassa.
Az IoT Hub eseményeire való előfizetés beállítása
Ebben a szakaszban konfiguráljuk az IoT-központot, hogy közzétegye a bekövetkező eseményeket.
Az Azure Portalon keresse meg az IoT-központot.
Válassza az Események elemet.
Válassza a + Esemény-előfizetés lehetőséget.
Adja meg az Esemény-előfizetés adatait: adjon meg egy leíró nevet , majd válassza az Event Grid-sémalehetőséget eseménysémaként.
Hozzon létre egy rendszertémakör-nevet az IoT Hub-erőforráshoz.
Töltse ki az Eseménytípusok mezőket. A legördülő listában válassza ki a menüben csak az Eszköz csatlakoztatva és az Eszköz leválasztva lehetőséget. A lista bezárásához és a kijelölések mentéséhez kattintson a képernyő bármely pontjára.
A Végpont részletei területen válassza a Végpont típusa webhookként lehetőséget, majd kattintson a végpont kiválasztására, majd illessze be a logikai alkalmazásból másolt URL-címet, és erősítse meg a kijelölést.
Az űrlapnak most az alábbi példához hasonlóan kell kinéznie:
Az eseményfeliratkozás mentéséhez válassza a Létrehozás lehetőséget.
Fontos
Várjon néhány percet, amíg az esemény feldolgozva lesz az eszköz futtatása előtt. Az Azure-szolgáltatások létrehozásakor vagy módosításakor a folyamat következő lépésének túl korai kezdeményezése szükségtelen hibákat eredményezhet. Ha például az IoT Hub nem aktív állapotban van, nem lesz készen az események fogadására. Ellenőrizze az IoT Hub áttekintési oldalán, hogy az IoT Hub aktív állapotban van-e vagy sem. Ha nem, figyelmeztetés jelenik meg az oldal tetején.
Eszköz futtatása és események megfigyelése
Most, hogy az esemény-előfizetés be van állítva, teszteljük az eszköz csatlakoztatásával.
Eszköz regisztrálása IoT Hub
Az IoT Hubon válassza az Eszközök lehetőséget.
Válassza az + Eszköz hozzáadása lehetőséget a panel tetején.
Az Eszközazonosító mezőbe írja be a következőt:
Demo-Device-1
.Válassza a Mentés lehetőséget.
Kattintson ismét az eszközre; ekkor a kapcsolati sztringek és kulcsok ki lesznek töltve. Másolja ki és mentse az elsődleges kapcsolati sztringet későbbi használatra.
Raspberry Pi-szimulátor indítása
Használjuk a Raspberry Pi webszimulátort az eszközkapcsolat szimulálásához.
Raspberry Pi-szimulátor indítása
Mintaalkalmazás futtatása a Raspberry Pi webszimulátoron
Ez a mintaalkalmazás elindít egy eszközhöz csatlakoztatott eseményt.
A kódolási területen cserélje le a 15. sorban lévő helyőrzőt az előző szakasz végén mentett Azure IoT Hub eszközre kapcsolati sztring.
Futtassa az alkalmazást a Futtatás gombra kattintva.
A következő kimenethez hasonló üzenet jelenik meg, amely az érzékelő adatait és az IoT Hubnak küldött üzeneteket jeleníti meg.
A logikai alkalmazás áttekintési oldalán ellenőrizheti, hogy a logika aktiválva van-e. A következő lesz: Sikeres vagy Sikertelen. Itt ellenőrizheti a logikai alkalmazás állapotát, ha hibaelhárításra van szükség. Az eseményindító futásától számítson 15–30 másodperces késleltetésre. Ha hibaelhárításra van szüksége a logikai alkalmazással kapcsolatban, tekintse meg a Hibák elhárítása című cikket.
A Leállítás gombra kattintva állítsa le a szimulátort, amely elindít egy eszközről leválasztott eseményt . Ez az esemény a Logic App Overview (Logikai alkalmazás áttekintése ) oldalon fog bejelentkezni, ahogyan az ott naplózott kapcsolati esemény is.
Most futtatott egy mintaalkalmazást az eszköz kapcsolati és leválasztási eseményeinek gyűjtéséhez, amelyek az IoT Hubra kerülnek.
Események megfigyelése az Azure Cosmos DB-ben
A végrehajtott logikai alkalmazás eredményeit a Cosmos DB-dokumentumban tekintheti meg. A dokumentum megjelenik az Elemek gyűjteményben a lap frissítésekor. Minden kapcsolati állapotesemény létrehoz egy új, egyedi id
dokumentumot. Az alábbi képen az eszköz indításakor (csatlakoztatva) létrehozott dokumentum látható. A csatlakoztatott eseménytípus szerepel a JSON-kimenetben.
Az Azure parancssori felületének használata
A Azure Portal használata helyett az Azure CLI-vel végezheti el a IoT Hub lépéseket. A részletekért tekintse meg az Azure CLI-lapokat az esemény-előfizetések létrehozásához és egy IoT-eszköz létrehozásához.
Az erőforrások eltávolítása
Ebben az oktatóanyagban olyan erőforrásokat használtunk, amelyek költségekkel terhelik az Azure-előfizetését. Ha befejezte az oktatóanyag kipróbálását és az eredmények tesztelését, tiltsa le vagy törölje azokat az erőforrásokat, amelyeket nem szeretne megtartani.
Logikai alkalmazás
Ha nem szeretné elveszteni a logikai alkalmazásba fektetett munkáját, a törlés helyett csak tiltsa le.
Keresse meg a logikai alkalmazást.
Az Áttekintés panelen válassza a Törlés vagy a Letiltás lehetőséget.
Mindegyik előfizetés egy ingyenes IoT-központtal rendelkezhet. Ha ingyenes központot hozott létre az oktatóanyaghoz, azt nem kell törölnie a költségek megelőzéséhez.
IoT Hub vagy Event Grid
Keresse meg az IoT-központot.
Az Áttekintés panelen válassza a Törlés lehetőséget.
Az esemény-előfizetést akkor is érdemes lehet törölnie, ha megtartja az IoT-központot. Az IoT-központban válassza az Event Grid lehetőséget.
Jelölje ki az eltávolítani kívánt esemény-előfizetést, majd válassza a Törlés lehetőséget.
Cosmos DB
Ha el szeretne távolítani egy Azure Cosmos DB-fiókot a Azure Portal, nyissa meg az erőforrást, és válassza a Fiók törlése lehetőséget a felső menüsávon. Tekintse meg az Azure Cosmos DB-fiók törlésére vonatkozó részletes utasításokat.
Következő lépések
További információ arról, hogyan reagálhat IoT Hub eseményekre az Event Grid használatával a műveletek aktiválásához
További információ az Event Grid használatával elvégezhető műveletekről
Ismerje meg, hogyan használhatja az Event Gridet és az Azure Monitort a IoT Hub