Uspořádání událostí připojení zařízení z Azure IoT Hubu pomocí služby Azure Cosmos DB

Azure Event Grid pomáhá vytvářet aplikace založené na událostech a snadno integrovat události IoT do obchodních řešení. Tento článek vás provede nastavením pomocí služby Cosmos DB, aplikace logiky, událostí ioT Hubu a simulovaného Raspberry Pi ke shromažďování a ukládání událostí připojení a odpojení zařízení.

Od okamžiku spuštění zařízení se aktivuje pořadí operací:

  1. Zařízení Pi s použitím klíče zařízení IoT Hub se spustí a pak zastaví.

  2. Událost IoT Hubu zaznamenává aktivitu zařízení a pak odešle požadavek HTTP do vaší aplikace logiky.

  3. Aplikace logiky zpracovává požadavek HTTP na základě nastavené podmínky.

  4. Aplikace logiky zaznamená události připojení nebo odpojení do nového dokumentu ve službě Cosmos DB.

    Snímek obrazovky s nastavením, které vytvoříme pro tento článek Toto nastavení ukazuje, jak jsou připojené všechny služby a zařízení.

Požadavky

  • Aktivní účet Azure Cosmos DB for NoSQL. Pokud jste ho ještě nevytvořili, přečtěte si téma Vytvoření databázového účtu pro názorný postup.

  • Kolekce ve vaší databázi. Návod najdete v tématu Přidání kolekce . Při vytváření kolekce použijte /id klíč oddílu.

  • Předplatné Azure. Pokud nemáte předplatné Azure, vytvořte si ho zdarma , než začnete.

  • Centrum IoT ve vašem předplatném Azure Pokud centrum ještě nemáte, můžete postupovat podle kroků v tématu Vytvoření centra IoT.

Vytvoření aplikace logiky

Vytvoříme aplikaci logiky a přidáme trigger Event Gridu, který monitoruje skupinu prostředků pro váš virtuální počítač.

Vytvořte prostředek aplikace logiky

  1. Na webu Azure Portal vyberte +Vytvořit prostředek, vyberte Integrace a pak Aplikaci logiky.

    Snímek obrazovky znázorňuje, jak najít a vybrat aplikaci logiky na webu Azure Portal

  2. Vyplňte formulář a vytvořte novou aplikaci logiky, která obsahuje:

    • Vaše předplatné

    • Vaše skupina prostředků (nebo vytvořit novou)

    • Název aplikace logiky, který je v předplatném jedinečný

    • Oblast centra IoT

    • Ne pro povolení log analytics

    • Typ plánu Consumption

      Poznámka:

      Typ plánu Consumption je možnost, která v uživatelském rozhraní povolí návrháře aplikace logiky. Pokud zvolíte Standardní (výchozí), musíte vytvořit nový pracovní postup, aby byl návrhář aplikace logiky k dispozici.

    Snímek obrazovky znázorňuje, jak vytvořit aplikaci logiky na webu Azure Portal

  3. Výběrem možnosti Zkontrolovat a vytvořit zkontrolujte konfiguraci a pak výběrem možnosti Vytvořit vytvořte aplikaci logiky.

  4. Právě jste vytvořili prostředek Azure pro vaši aplikaci logiky. Jakmile Azure nasadí vaši aplikaci logiky, vyberte Přejít k prostředku. Návrhář aplikací logiky vám ukáže šablony pro běžné vzory, abyste mohli začít rychleji.

  5. V návrháři aplikace logiky se posuňte, dokud neuvidíte oddíl Šablony, a pak zvolte Prázdnou aplikaci logiky, abyste mohli aplikaci logiky sestavit úplně od začátku.

Výběr aktivační události

Trigger je konkrétní událost, která spustí aplikaci logiky. V tomto kurzu trigger, který spustí pracovní postup, přijímá žádost přes protokol HTTP.

  1. Na panelu hledání konektorů a triggerů zadejte HTTP a stiskněte Enter.

  2. Vyberte požadavek Při přijetí požadavku HTTP jako triggeru.

    Snímek obrazovky znázorňuje, jak najít trigger požadavku HTTP.

  3. Vyberte K vygenerování schématu použít ukázkovou datovou část.

    Snímek obrazovky s generovaným schématem pomocí ukázkové datové části

  4. Do textového pole vložte následující ukázkový kód JSON a pak vyberte Hotovo.

    Tento JSON se používá jenom jako šablona, takže přesné hodnoty nejsou důležité.

    [{
     "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"
    }]
    

    Snímek obrazovky ukázkové datové části JSON vložené do textového pole v Azure

Vytvoření podmínky

Podmínky pomáhají spouštět konkrétní akce po předání této konkrétní podmínky. V tomto článku je podmínkou kontrola, jestli je vlastnost eventType buď připojená k zařízení, nebo jestli je odpojené zařízení. Akce se provede, když je hodnota eventType true, vytvoření dokumentu ve službě Azure Cosmos DB. Tato podmínka se vytvoří v návrháři aplikace logiky.

  1. Vyberte + Nový krok, pak integrovanou kartu, pak vyhledejte a vyberte ovládací prvek s názvem Podmínka.

  2. Ve vaší podmínce změňte A na Or, protože chceme zachytit události připojení nebo události odpojení v jedné analýze.

  3. Vyberte uvnitř pole Zvolit hodnotu a zobrazí se automaticky otevírané okno s dynamickým obsahem – pole, která lze vybrat.

    • Zvolte eventType. Automaticky se zavře místní okno a vy uvidíte , že text se umístí do výběru výstupu z předchozích kroků. Chcete-li znovu otevřít podmíněný příkaz, vyberte Podmínku .

    • Ponechte hodnotu rovnající se hodnotě .

    • Zadejte Microsoft.Devices.DeviceConnected jako poslední hodnotu tohoto řádku.

    • Pokud chcete přidat další řádek, vyberte + Přidat .

    • Tento druhý řádek je podobný prvnímu řádku s výjimkou událostí odpojení.

      Použijte eventType, je rovno a Microsoft.Devices.DeviceDisconnected pro hodnoty řádků.

      Snímek obrazovky s úplnou podmínkou pro každou podmínku

  4. V dialogovém okně if true klikněte na Přidat akci.

    Snímek obrazovky s polem If true v Azure

  5. Vyhledejte Cosmos DB a vyberte Azure Cosmos DB – Vytvoření nebo aktualizace dokumentu (V3)

    Snímek obrazovky s hledáním služby Azure Cosmos DB

  6. Zobrazí se panel Vytvořit nebo aktualizovat dokument (V3). Do polí zadejte tyto hodnoty:

    Název účtu služby Azure Cosmos DB: {Add your account name}

    ID databáze: ToDoList

    ID kolekce: Položky

    Dokument: Výběr Current item ze seznamu parametrů dynamického obsahu

    Snímek obrazovky ukazuje položku Spustit uloženou proceduru (V3) s vybranou možností Přidat nový parametr.

  7. Uložte aplikaci logiky.

Zkopírujte adresu URL protokolu HTTP

Než opustíte Návrháře pro Logic Apps, zkopírujte adresu URL, na které vaše aplikace logiky naslouchá triggeru. Pomocí této adresy URL nakonfigurujete Event Grid.

  1. Rozbalte pole Konfigurace při přijetí požadavku HTTP tak, že ho vyberete.

  2. Tlačítkem vedle hodnoty Adresa URL operace HTTP POST tuto hodnotu zkopírujte.

    Snímek obrazovky, kde najdete adresu URL PROTOKOLU HTTP, která se má zkopírovat

  3. Uložte tuto adresu URL, abyste ji mohli použít v další části.

Konfigurace odběru událostí služby IoT Hub

V této části nakonfigurujete v IoT Hubu publikování událostí, když k nim dojde.

  1. Na webu Azure Portal přejděte do svého centra IoT.

  2. Vyberte Události.

    Snímek obrazovky s tlačítkem Události v nabídce IoT Hubu

  3. Vyberte + Odběr události.

    Vytvoření nového odběru události

  4. Vyplňte podrobnosti odběru událostí: Zadejte popisný název a jako schéma událostí vyberte schéma Event Gridu.

  5. Vytvořte název tématu systému pro prostředek ioT Hubu.

  6. Vyplňte pole Typy událostí. V rozevíracím seznamu vyberte v nabídce pouze připojené zařízení a odpojené zařízení. Kliknutím na libovolné místo na obrazovce seznam zavřete a uložte vybrané položky.

    Nastavení typů událostí pro vyhledání

  7. V části Podrobnosti o koncovém bodu vyberte typ koncového bodu jako webhook a klikněte na vybrat koncový bod a vložte adresu URL, kterou jste zkopírovali z aplikace logiky, a potvrďte výběr.

    Vybrat adresu URL koncového bodu

  8. Formulář by teď měl vypadat podobně jako v následujícím příkladu:

    Snímek obrazovky s formulářem pro vytvoření odběru událostí

    Vyberte Vytvořit, aby se odběr událostí uložil.

    Důležité

    Než zařízení spustíte, počkejte několik minut, než se událost zpracuje. Kdykoli se vytvoří nebo změní služby Azure, spuštění dalšího kroku v kanálu může mít za následek zbytečné chyby. Pokud například vaše centrum IoT není v aktivním stavu, nebude připravené přijímat události. Zkontrolujte stránku Přehled centra IoT a zjistěte, jestli je centrum IoT v aktivním stavu nebo ne. Pokud tomu tak není, zobrazí se v horní části stránky upozornění.

    Snímek obrazovky s chybou IoT Hubu, která říká, že není v aktivním stavu

Spuštění zařízení a sledování událostí

Teď, když je vaše odběr událostí nastavený, otestujeme propojením zařízení.

Registrace zařízení ve službě IoT Hub

  1. V centru IoT vyberte Zařízení.

  2. V horní části podokna vyberte + Přidat zařízení .

  3. Jako ID zařízení zadejte Demo-Device-1.

  4. Zvolte Uložit.

    Snímek obrazovky s umístěním tlačítka Přidat zařízení

  5. Znovu klikněte na zařízení; teď se vyplní připojovací řetězec a klíče. Zkopírujte a uložte primární připojovací řetězec pro pozdější použití.

    Snímek obrazovky s umístěním primárního připojovacího řetězce pro vaše zařízení

Spuštění simulátoru Raspberry Pi

Pojďme k simulaci připojení zařízení použít webový simulátor Raspberry Pi.

Spuštění simulátoru Raspberry Pi

Spuštění ukázkové aplikace ve webovém simulátoru Raspberry Pi

Tato ukázková aplikace aktivuje událost připojenou k zařízení.

  1. V oblasti kódování nahraďte zástupný symbol na řádku 15 zařízením Azure IoT Hub připojovací řetězec, které jste uložili na konci předchozí části.

    Snímek obrazovky, kde přidat primární připojovací řetězec ve skriptu Raspberry Pi

  2. Spusťte aplikaci výběrem možnosti Spustit.

    Zobrazí se něco podobného jako v následujícím výstupu, který zobrazuje data snímačů a zprávy, které se odesílají do vašeho centra IoT.

    Snímek obrazovky s tím, co očekávat ve výstupní konzole při spuštění Raspberry Pi

  3. Na stránce Přehled aplikace logiky můžete zkontrolovat, jestli se logika neaktivuje. Řekne se to Úspěšné nebo Neúspěšné. Tady zkontrolujte stav aplikace logiky, pokud je potřeba řešit potíže. Počítejte s 15 až 30sekundovým zpožděním od spuštění triggeru. Pokud potřebujete řešit potíže s aplikací logiky, přečtěte si tento článek o řešení chyb .

    Snímek obrazovky s aktualizacemi stavu na stránce Přehled aplikace logiky

  4. Výběrem možnosti Zastavit zastavíte simulátor, který aktivuje událost Odpojené zařízení. Tato událost se přihlásí na stránce Přehled aplikace logiky, stejně jako se tam protokolovala událost připojení.

Teď jste spustili ukázkovou aplikaci pro shromažďování událostí připojení a odpojení vašeho zařízení, které přejdou do centra IoT.

Sledování událostí ve službě Azure Cosmos DB

Výsledky spuštěné aplikace logiky můžete zobrazit v dokumentu cosmos DB. Dokument se zobrazí v kolekci Položek při aktualizaci stránky. Každá událost stavu připojení vygeneruje nový dokument, který má přiřazen jedinečný id. Následující obrázek ukazuje dokument vytvořený při spuštění zařízení (připojeném). Typ připojené události je uvedený ve výstupu JSON.

Snímek obrazovky s nově vygenerovanou událostí stavu připojení v kolekci Cosmos DB

Použití Azure CLI

Místo použití webu Azure Portal můžete provést kroky ioT Hubu pomocí Azure CLI. Podrobnosti najdete na stránkách Azure CLI pro vytvoření odběru událostí a vytvoření zařízení IoT.

Vyčištění prostředků

Tento kurz využívá prostředky, za které vám můžou být v předplatném Azure účtovány poplatky. Po dokončení vyzkoušení kurzu a testování výsledků zakažte nebo odstraňte prostředky, které nechcete zachovat.

Aplikace logiky

Pokud nechcete přijít o práci na aplikaci logiky, místo odstranění ji zakažte.

  1. Přejděte do aplikace logiky.

  2. V okně Přehled vyberte Odstranit nebo Zakázat.

    Každý odběr může mít jedno bezplatné centrum IoT. Pokud jste vytvořili bezplatné centrum pro účely tohoto kurzu, tak ho nemusíte odstraňovat, aby se vám nic neúčtovalo.

IoT Hub nebo Event Grid

  1. Přejděte do svého centra IoT.

  2. V okně Přehled vyberte Odstranit.

  3. I když si centrum IoT necháte, bude vhodné odstranit odběr události, který jste vytvořili. V centru IoT vyberte Mřížka událostí.

  4. Vyberte odběr události, který chcete odebrat, a pak vyberte Odstranit.

Cosmos DB

Pokud chcete odebrat účet služby Azure Cosmos DB z webu Azure Portal, přejděte do svého prostředku a v horním řádku nabídek vyberte Odstranit účet . Podrobné pokyny k odstranění účtu služby Azure Cosmos DB

Další kroky