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:

  1. Az IoT Hub eszközkulcsát használó Pi-eszköz elindul, majd le van állítva

  2. Egy IoT Hub esemény rögzíti az eszköztevékenységet, majd HTTP-kérést küld a logikai alkalmazásnak

  3. A logikai alkalmazás egy beállított feltétel alapján dolgozza fel a HTTP-kérést

  4. A Logikai alkalmazás egy új dokumentumba naplózza a kapcsolati vagy leválasztási eseményeket a Cosmos DB-ben

    Képernyőkép a cikkhez létrehozott beállításról. Ez a beállítás bemutatja, hogyan csatlakozik az összes szolgáltatás és eszköz.

Előfeltételek

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

  1. A Azure Portal válassza a +Erőforrás létrehozása, majd az Integráció, majd a Logikai alkalmazás lehetőséget.

    Képernyőkép egy logikai alkalmazás megkereséséről és kiválasztásáról a Azure Portal.

  2. 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.

    Logikai alkalmazás létrehozásának képernyőképe a Azure Portal.

  3. 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.

  4. 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.

  5. 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.

  1. Az összekötők és triggerek keresősávjában írja be a HTTP kifejezést, és nyomja le az Enter billentyűt.

  2. Válassza ki a kérést: Http-kérés fogadása eseményindítóként.

    Képernyőkép a HTTP-kérelem eseményindítójának megkereséséről.

  3. Válassza a Séma létrehozása hasznosadat-minta használatával lehetőséget.

    Képernyőkép arról, hogyan hozhat létre sémát minta hasznos adatok használatával.

  4. 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"
    }]
    

    Képernyőkép az Azure-beli szövegmezőbe beillesztett JSON-minta hasznos adatokról.

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.

  1. 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.

  2. 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.

  3. 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.

      Képernyőkép a minden feltételhez tartozó teljes feltételről.

  4. A ha igaz párbeszédpanelen kattintson a Művelet hozzáadása elemre.

    Képernyőkép az Azure

  5. 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

    Képernyőkép az Azure Cosmos DB kereséséről.

  6. 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ól

    Képernyőkép egy Tárolt eljárás végrehajtása (V3) elemről, amelyen az

  7. Mentse 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.

  1. Bontsa ki a HTTP-kérés fogadása eseményindító konfigurációs mezőjét a kiválasztásával.

  2. Másolja ki a HTTP POST URL értékét a mellette lévő másolás gombra kattintva.

    Képernyőkép a másolandó HTTP-URL-cím megkereséséről.

  3. 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.

  1. Az Azure Portalon keresse meg az IoT-központot.

  2. Válassza az Események elemet.

    Képernyőkép arról, hogy hol található az Események gomb a IoT Hub menüben.

  3. Válassza a + Esemény-előfizetés lehetőséget.

    Új esemény-előfizetés létrehozása

  4. 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.

  5. Hozzon létre egy rendszertémakör-nevet az IoT Hub-erőforráshoz.

  6. 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.

    Eseménytípusok beállítása a kereséshez

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

    Végpont URL-címének kiválasztása

  8. Az űrlapnak most az alábbi példához hasonlóan kell kinéznie:

    Képernyőkép az esemény-előfizetés létrehozásához használt űrlapról.

    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.

    Képernyőkép egy IoT Hub hibáról, amely szerint nincs aktív állapotban.

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

  1. Az IoT Hubon válassza az Eszközök lehetőséget.

  2. Válassza az + Eszköz hozzáadása lehetőséget a panel tetején.

  3. Az Eszközazonosító mezőbe írja be a következőt: Demo-Device-1.

  4. Válassza a Mentés lehetőséget.

    Képernyőkép az Eszköz hozzáadása gomb helyéről.

  5. 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.

    Képernyőkép az eszköz elsődleges kapcsolati sztringjének helyéről.

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.

  1. 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.

    Képernyőkép az elsődleges kapcsolati sztring a Raspberry Pi-szkriptben való hozzáadásáról.

  2. 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.

    Képernyőkép arról, hogy mire számíthat a kimeneti konzolon a Raspberry Pi futtatásakor.

  3. 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.

    Képernyőkép a logikai alkalmazás áttekintési oldalán található állapotfrissítésekről.

  4. 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 iddokumentumot. 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.

Képernyőkép egy Cosmos DB-gyűjtemény újonnan létrehozott kapcsolatállapot-eseményéről.

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.

  1. Keresse meg a logikai alkalmazást.

  2. 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

  1. Keresse meg az IoT-központot.

  2. Az Áttekintés panelen válassza a Törlés lehetőséget.

  3. 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.

  4. 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