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í:
Zařízení Pi s použitím klíče zařízení IoT Hub se spustí a pak zastaví.
Událost IoT Hubu zaznamenává aktivitu zařízení a pak odešle požadavek HTTP do vaší aplikace logiky.
Aplikace logiky zpracovává požadavek HTTP na základě nastavené podmínky.
Aplikace logiky zaznamená události připojení nebo odpojení do nového dokumentu ve službě Cosmos DB.
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
Na webu Azure Portal vyberte +Vytvořit prostředek, vyberte Integrace a pak Aplikaci logiky.
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.
Výběrem možnosti Zkontrolovat a vytvořit zkontrolujte konfiguraci a pak výběrem možnosti Vytvořit vytvořte aplikaci logiky.
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.
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.
Na panelu hledání konektorů a triggerů zadejte HTTP a stiskněte Enter.
Vyberte požadavek Při přijetí požadavku HTTP jako triggeru.
Vyberte K vygenerování schématu použít ukázkovou datovou část.
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" }]
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.
Vyberte + Nový krok, pak integrovanou kartu, pak vyhledejte a vyberte ovládací prvek s názvem Podmínka.
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.
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ů.
V dialogovém okně if true klikněte na Přidat akci.
Vyhledejte Cosmos DB a vyberte Azure Cosmos DB – Vytvoření nebo aktualizace dokumentu (V3)
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 obsahuUlož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.
Rozbalte pole Konfigurace při přijetí požadavku HTTP tak, že ho vyberete.
Tlačítkem vedle hodnoty Adresa URL operace HTTP POST tuto hodnotu zkopírujte.
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.
Na webu Azure Portal přejděte do svého centra IoT.
Vyberte Události.
Vyberte + Odběr události.
Vyplňte podrobnosti odběru událostí: Zadejte popisný název a jako schéma událostí vyberte schéma Event Gridu.
Vytvořte název tématu systému pro prostředek ioT Hubu.
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.
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.
Formulář by teď měl vypadat podobně jako v následujícím příkladu:
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í.
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
V centru IoT vyberte Zařízení.
V horní části podokna vyberte + Přidat zařízení .
Jako ID zařízení zadejte
Demo-Device-1
.Zvolte Uložit.
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í.
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í.
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.
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.
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 .
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.
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.
Přejděte do aplikace logiky.
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
Přejděte do svého centra IoT.
V okně Přehled vyberte Odstranit.
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í.
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
Další informace o reakci na události služby IoT Hub pomocí služby Event Grid k aktivaci akcí
Další informace o tom, co dalšího můžete dělat s Event Gridem
Naučte se používat Event Grid a Azure Monitor k monitorování, diagnostice a řešení potíží s připojením zařízení ke službě IoT Hub.