Eszközkapcsolati események megrendelése az Azure IoT Hubról az Azure Cosmos DB használatával

Az Azure Event Grid segítségével eseményalapú alkalmazásokat hozhat létre, és könnyen 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, az IoT Hub Events és egy szimulált Raspberry Pi használatával az eszköz kapcsolati és leválasztási eseményeinek gyűjtéséhez és tárolásához.

Az eszköz futásától kezdve a műveletek sorrendje aktiválódik:

  1. Az IoT Hub-eszközkulcsot használó Pi-eszköz elindul, majd leáll

  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 Logic App naplózza a kapcsolati vagy leválasztási eseményeket egy új dokumentumba 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. Az Azure portálon válassza az +Erőforrás létrehozása, majd az Integráció, és végül 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 az Azure Portalon.

  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 Ön erőforráscsoportja (vagy új létrehozása)

    • Az előfizetésben egyedi logikai alkalmazásnév

    • Az IoT Hub régiója

    • Egy Nem a naplóelemzés engedélyezése érdekében

    • Fogyasztás tervtípusa

      Megjegyzés:

      A Használat csomagtípus az a lehetőség, amely engedi a logikai alkalmazástervezőt a felhasználói felületen. Ha a Standard (alapértelmezett) lehetőséget választja, akkor létre kell hoznia egy új munkafolyamatot ahhoz, hogy a Logikai alkalmazás tervezője elérhetővé váljon.

    Képernyőkép egy logikai alkalmazás Azure Portalon való létrehozásáról.

  3. Válassza a Véleményezés + Létrehozás lehetőséget a konfiguráció áttekintéséhez, majd válassza 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 mutatja be, így gyorsabban kezdheti el az első lépéseket.

  5. A Logikai alkalmazás tervezőjében görgessen végig, 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.

Indítószó 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 az eseményindítók 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 , ha egy HTTP-kérés érkezik 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 Minta payload használatával séma generálása opciót.

    Képernyőkép arról, hogyan használjon egy mintaterhelést a séma létrehozásához.

  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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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-ban a szövegmezőbe beillesztett JSON-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 csatlakoztatva van-e az eszközhöz, vagy az eszköz leválasztva van-e. Az eseménytípus teljesülésekor 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 lehetőséget, majd a Beépített fület, majd keresse meg és válassza ki a Feltétel nevű vezérlőt.

  2. Az Ön állapotában módosítsa a And lehetőséget Or (Vagy)-ra, mivel a kapcsolati eseményeket vagy a leválasztási eseményeket egyetlen elemzésben szeretnénk rögzíteni.

  3. Válassza ki az Érték kiválasztása mezőben, és megjelenik egy előugró ablak, amely megjeleníti a dinamikus tartalmat – a kijelölhető mezőket.

    • Válassza az eventType lehetőséget. Az előugró ablak bezárul, és a Szövegtörzs elem automatikusan megjelenik az Előző lépések kimenetének kiválasztása elemben. A feltételes utasítás újbóli megnyitásához válassza a Feltétel lehetőséget.

    • Tartsa meg az egyenlő értéket.

    • A sor utolsó értékeként írja be a Microsoft.Devices.DeviceConnected értéket.

    • 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, azzal a különbséggel, hogy a leválasztási eseményeket keressük.

      Használja az eventType, egyenlő, és Microsoft.Devices.DeviceDisconnected kifejezéseket a sorértékekhez.

      Képernyőkép a teljes For Each feltételről.

  4. A Ha igaz párbeszédpanelen válassza a Művelet hozzáadása lehetőséget.

    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éter-listá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.

Az HTTP URL-cím másolása

Mielőtt kilép a Logic Apps Designerből, másolja ki azt az URL-címet, amelyet a logikai alkalmazás a kiváltó események figyelésére használ. 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őt úgy, hogy kijelöli azt.

  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 helyé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 az Események gomb helyéről az IoT Hub menüjében.

  3. Válassza az + 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, és válassza az Event Grid-sémátesemé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 csak a Csatlakoztatott eszköz és Leválasztott eszköz elemeket. A lista bezárásához és a kijelölt elemek mentéséhez válassza a képernyőn bárhol máshol.

    Az eseménytípusok keresésének beállítása

  7. A Végpont részleteinél válassza a Végpont típusa lehetőségnél a Webhook opciót, majd kattintson a végpont kiválasztására, illessze be a logikai alkalmazásból másolt URL-címet, és erősítse meg a kiválasztá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 tartozó ű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 okozhat. Ha például az IoT Hub nem aktív állapotban van, akkor nem áll készen az események fogadására. Ellenőrizze az IoT Hub áttekintési oldalát, hogy az IoT Hub aktív állapotban van-e. Ha nem, figyelmeztetés jelenik meg az oldal tetején.

    Képernyőkép egy IoT Hub-hibáról, amely azt jelzi, hogy 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 az IoT Hubban

  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 az Mentésgombot.

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

  5. Válassza ki ismét az eszközt; ekkor a kapcsolati sztringek és a kulcsok ki vannak töltve. Másolja é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 aktivál 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öz kapcsolati sztringjére.

    Képernyőkép arról, hogyan adja hozzá az elsődleges kapcsolati sztringet a Raspberry Pi-szkriptben.

  2. Futtassa az alkalmazást a Futtatás gombra kattintva.

    A következő kimenethez hasonló kimenet 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 lapján ellenőrizheti, hogy a logika aktiválva van-e. A következőt írják: Sikeres vagy Sikertelen. Itt ellenőrizheti a logikai alkalmazás állapotát, ha hibaelhárításra van szükség. Számítson arra, hogy a kioldó futása után 15–30 másodperces késés következik be. Ha a logikai alkalmazás hibaelhárítására van szüksége, tekintse meg ezt a hibaelhárítási cikket.

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

  4. Válassza a Leállítás lehetőséget a szimulátor leállításához, amely egy eszközről leválasztott eseményt indít el. Ezt az eseményt a logikai alkalmazás áttekintési oldalán naplózza a rendszer, ahogyan az ott naplózott kapcsolati eseményt.

Most már lefuttatott egy mintaalkalmazást az eszközének kapcsolódási és leválasztási eseményeinek gyűjtéséhez, amelyek az IoT-központjába 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 az Elemek gyűjteményben jelenik meg a lap frissítésekor. Minden kapcsolatállapot-esemé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 CLI használata

Az Azure Portal használata helyett az IoT Hub lépéseit az Azure CLI használatával hajthatja végre. További részletekért tekintse meg az Azure CLI-lapokat egy esemény-előfizetés létrehozásához és egy IoT-eszköz létrehozásához.

Erőforrások tisztí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ás munkáját, a törlés helyett csak tiltsa le.

  1. Nyissa meg a logikai alkalmazást.

  2. Az Áttekintés lapon 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 oldalon válassza a Törlés elemet.

  3. Még ha megtartja is az IoT Hubot, érdemes lehet törölnie a létrehozott esemény-előfizetést. Az IoT-központban válassza az Event Grid lehetőséget.

  4. Válassza 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 az Azure Portalról, lépjen az erőforrásra, é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ének részletes utasításait.

Következő lépések