Verbindingsgebeurtenissen voor het apparaat aanvragen bij Azure IoT Hub met behulp van Azure Cosmos DB
Azure Event Grid helpt u bij het bouwen van op gebeurtenissen gebaseerde toepassingen en integreert eenvoudig IoT-gebeurtenissen in uw bedrijfsoplossingen. Dit artikel begeleidt u bij het instellen van Cosmos DB, logische app, IoT Hub gebeurtenissen en een gesimuleerde Raspberry Pi om verbindings- en verbroken gebeurtenissen van een apparaat te verzamelen en op te slaan.
Vanaf het moment dat uw apparaat wordt uitgevoerd, wordt een volgorde van bewerkingen geactiveerd:
Het Pi-apparaat met behulp van uw IoT Hub-apparaatsleutel wordt gestart en vervolgens gestopt
Een IoT Hub gebeurtenis legt de activiteit van het apparaat vast en verzendt vervolgens een HTTP-aanvraag naar uw logische app
De logische app verwerkt de HTTP-aanvraag op basis van een voorwaarde die u hebt ingesteld
De logische app registreert verbindings- of verbroken gebeurtenissen in een nieuw document in Cosmos DB
Vereisten
Een actief Azure Cosmos DB for NoSQL-account. Als u nog geen databaseaccount hebt gemaakt, raadpleegt u Een databaseaccount maken voor een overzicht.
Een verzameling in uw database. Zie Een verzameling toevoegen voor een overzicht. Wanneer u uw verzameling maakt, gebruikt
/id
u voor de partitiesleutel.Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u er gratis een maken voordat u begint.
Een IoT-hub onder uw Azure-abonnement. Maak er een met de CLI of de Azure Portal.
Een logische app maken
We gaan een logische app maken en een Event Grid-trigger toevoegen die de resourcegroep voor uw virtuele machine bewaakt.
Een logische app maken
Selecteer in de Azure Portalde optie +Een resource maken, selecteer Integratie en vervolgens Logische app.
Vul het formulier in om een nieuwe logische app te maken die het volgende bevat:
Uw abonnement
Uw resourcegroep (of maak een nieuwe)
Een naam van een logische app die uniek is in uw abonnement
De regio van uw IoT-hub
Een nee voor het inschakelen van Log Analytics
Een abonnementstype Verbruik
Notitie
Het type verbruiksabonnement is de optie waarmee de ontwerpfunctie voor logische apps in de gebruikersinterface wordt ingeschakeld. Als u Standaard (de standaardinstelling) kiest, moet u een nieuwe werkstroom maken om de ontwerper van logische apps beschikbaar te maken.
Selecteer Beoordelen en maken om uw configuratie te controleren en selecteer vervolgens Maken om de logische app te maken.
U hebt nu een Azure-resource voor uw logische app gemaakt. Nadat Azure uw logische app heeft geïmplementeerd, selecteert u Ga naar resource. Ontwerper van logische apps toont sjablonen voor algemene patronen, zodat u sneller aan de slag kunt.
Schuif in de ontwerpfunctie voor logische apps totdat u de sectie Sjablonen ziet. Kies vervolgens Lege logische app zodat u uw logische app helemaal zelf kunt bouwen.
Een trigger selecteren
Een trigger is een specifieke gebeurtenis waarmee uw logische app wordt gestart. Voor deze zelfstudie is de trigger voor het activeren van de werkstroom het ontvangen van een aanvraag via HTTP.
Typ HTTP in de zoekbalk connectors en triggers en druk op Enter.
Selecteer de aanvraag Wanneer een HTTP-aanvraag wordt ontvangen als de trigger.
Selecteer Voorbeeldnettolading om een schema te genereren.
Plak de volgende voorbeeld-JSON-code in het tekstvak en selecteer gereed.
Deze JSON wordt alleen gebruikt als sjabloon, dus de exacte waarden zijn niet belangrijk.
[{ "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" }]
Een voorwaarde maken
Voorwaarden helpen bij het uitvoeren van specifieke acties nadat deze specifieke voorwaarde is doorgegeven. Voor dit artikel is de voorwaarde om te controleren of eventType is verbonden met het apparaat of de verbinding met het apparaat is verbroken. De actie die wordt uitgevoerd wanneer dat eventType waar is, is het maken van een document in Azure Cosmos DB. Deze voorwaarde wordt gemaakt in de ontwerper van logische apps.
Selecteer + Nieuwe stap, vervolgens het tabblad Ingebouwd en zoek en selecteer het besturingselement met de naam Voorwaarde.
Wijzig in uw voorwaarde En in Of, omdat we verbindingsgebeurtenissen of verbroken gebeurtenissen in één parse willen vastleggen.
Selecteer in het vak Een waarde kiezen . Er wordt een pop-upvenster weergegeven met de dynamische inhoud , de velden die kunnen worden geselecteerd.
Kies eventType. Het pop-upvenster wordt gesloten en u ziet dat Hoofdtekst automatisch wordt geplaatst in Selecteer een uitvoer uit de vorige stappen. Selecteer Voorwaarde om uw voorwaardelijke instructie opnieuw te openen.
Behoud de is gelijk aan waarde.
Typ Microsoft.Devices.DeviceConnected als laatste waarde van die rij.
Selecteer + Toevoegen om nog een rij toe te voegen.
Deze tweede rij is vergelijkbaar met de eerste rij, behalve dat we zoeken naar verbroken gebeurtenissen.
Gebruik eventType, is gelijk aan en Microsoft.Devices.DeviceDisconnected voor de rijwaarden.
Klik in het dialoogvenster indien waar op Een actie toevoegen.
Zoek naar Cosmos DB en selecteer Azure Cosmos DB — Document maken of bijwerken (V3)
U ziet het deelvenster Document maken of bijwerken (V3). Voer deze waarden in voor de velden:
Azure Cosmos DB-accountnaam: {Uw accountnaam toevoegen}
Database-id: ToDoList
Verzamelings-id: Items
Document: Kies
Current item
uit de lijst met parameters voor dynamische inhoudSla uw logische app op.
HTTP-URL kopiëren
Voordat u de Logic Apps-Designer verlaat, kopieert u de URL waarnaar uw logische app luistert voor een trigger. U gebruikt deze URL voor het configureren van Event Grid.
Vouw het configuratievak Wanneer een HTTP-aanvraag wordt ontvangen uit door deze te selecteren.
Kopieer de waarde van URL voor HTTP POST door de knop URL kopiëren ernaast te selecteren.
Sla deze URL op zodat u deze in de volgende sectie kunt gebruiken.
Abonnement voor IoT Hub-gebeurtenissen configureren
In deze sectie configureert u de IoT-hub voor het publiceren van gebeurtenissen op het moment dat deze optreden.
Ga in Azure Portal naar uw IoT-hub.
Selecteer Gebeurtenissen.
Selecteer + Gebeurtenisabonnement.
Vul details van gebeurtenisabonnement in: geef een beschrijvende naam op en selecteer Event Grid-schema als het gebeurtenisschema.
Maak een systeemonderwerpnaam voor uw IoT Hub-resource.
Vul de velden Gebeurtenistypen in. Selecteer in de vervolgkeuzelijst alleen Apparaat verbonden en Apparaat verbroken in het menu. Klik ergens anders op het scherm om de lijst te sluiten en uw selecties op te slaan.
Voor Eindpuntdetails selecteert u Eindpunttype als Webhook , klikt u op Eindpunt selecteren en plakt u de URL die u uit uw logische app hebt gekopieerd en bevestigt u de selectie.
Het formulier moet er nu uitzien zoals in het volgende voorbeeld:
Selecteer Maken om het gebeurtenisabonnement op te slaan.
Belangrijk
Wacht enkele minuten totdat de gebeurtenis is verwerkt voordat u uw apparaat uitvoert. Telkens wanneer Azure-services worden gemaakt of gewijzigd, kan het te snel initiëren van de volgende stap in uw pijplijn leiden tot onnodige fouten. Als uw IoT-hub bijvoorbeeld niet actief is, is deze niet gereed om gebeurtenissen te ontvangen. Controleer de overzichtspagina van uw IoT-hub om te zien of uw IoT-hub een actieve status heeft of niet. Als dat niet zo is, ziet u een waarschuwing boven aan de pagina.
Apparaat uitvoeren en gebeurtenissen observeren
Nu uw gebeurtenisabonnement is ingesteld, gaan we testen door verbinding te maken met een apparaat.
Een apparaat registreren in IoT Hub
Selecteer apparaten in uw IoT-hub.
Selecteer + Apparaat toevoegen bovenaan het deelvenster.
Voor Apparaat-id, voert u
Demo-Device-1
in.Selecteer Opslaan.
Klik nogmaals op het apparaat; nu worden de verbindingsreeksen en sleutels ingevuld. Kopieer de primaire verbindingsreeks en sla deze op voor later gebruik.
Raspberry Pi-simulator starten
Laten we de Raspberry Pi-websimulator gebruiken om de apparaatverbinding te simuleren.
Raspberry Pi-simulator starten
Een voorbeeldtoepassing uitvoeren op de Raspberry Pi-websimulator
Met deze voorbeeld-app wordt een verbonden gebeurtenis voor het apparaat geactiveerd.
Vervang in het coderingsgebied de tijdelijke aanduiding in regel 15 door uw Azure IoT Hub apparaat connection string die u aan het einde van de vorige sectie hebt opgeslagen.
Voer de toepassing uit door Uitvoeren te selecteren.
U ziet iets vergelijkbaars met de volgende uitvoer, waarin de sensorgegevens en de berichten worden weergegeven die naar uw IoT-hub worden verzonden.
U kunt de overzichtspagina van de logische app controleren om te controleren of uw logica wordt geactiveerd. De tekst Is geslaagd of Mislukt. Als u hier kijkt, weet u wat de status van uw logische app is als er problemen moeten worden opgelost. Verwacht een vertraging van 15-30 seconden vanaf het moment dat de trigger wordt uitgevoerd. Als u problemen met uw logische app wilt oplossen, raadpleegt u dit artikel Fouten oplossen .
Selecteer Stoppen om de simulator te stoppen, waardoor een gebeurtenis Verbinding met apparaat verbroken wordt geactiveerd. Deze gebeurtenis wordt aangemeld op de pagina Overzicht van logische apps, net als de verbindingsgebeurtenis die daar is geregistreerd.
U hebt nu een voorbeeldtoepassing uitgevoerd om verbindings- en verbroken gebeurtenissen van uw apparaat te verzamelen, die naar uw IoT-hub gaan.
Gebeurtenissen observeren in Azure Cosmos DB
U kunt de resultaten van de uitgevoerde logische app bekijken in uw Cosmos DB-document. Het document wordt weergegeven in de verzameling Items wanneer u de pagina vernieuwt. Elke verbindingsstatusgebeurtenis genereert een nieuw document waaraan een unieke id
is toegewezen. In de volgende afbeelding ziet u het document dat is gemaakt toen het apparaat werd gestart (verbonden). Het verbonden gebeurtenistype wordt vermeld in de JSON-uitvoer.
Azure CLI gebruiken
In plaats van de Azure Portal te gebruiken, kunt u de IoT Hub stappen uitvoeren met behulp van de Azure CLI. Zie de Azure CLI-pagina's voor het maken van een gebeurtenisabonnement en het maken van een IoT-apparaat voor meer informatie.
Resources opschonen
In deze zelfstudie zijn resources gebruikt die kosten voor uw Azure-abonnement met zich meebrengen. Wanneer u klaar bent met de zelfstudie en het testen van de resultaten, moet u daarom de resources uitschakelen of verwijderen die u niet wilt behouden.
Logische apps
Als u het werk aan uw logische app wilt behouden, kunt u de app uitschakelen in plaats van verwijderen.
Ga naar uw logische app.
Selecteer op de blade Overzichtde optie Verwijderen of Uitschakelen.
Elk abonnement biedt toegang tot één gratis IoT-hub. Als u een gratis hub hebt gemaakt voor deze zelfstudie, hoeft u deze niet te verwijderen om te voorkomen dat er kosten in rekening worden gebracht.
IoT Hub of Event Grid
Ga naar uw IoT-hub.
Selecteer verwijderen op de blade Overzicht.
Zelfs als u uw IoT-hub wilt behouden, kunt u het gebeurtenisabonnement verwijderen dat u hebt gemaakt. Selecteer hiervoor Event Grid in uw IoT-hub.
Selecteer het gebeurtenisabonnement dat u wilt verwijderen en selecteer vervolgens Verwijderen.
Cosmos DB
Als u een Azure Cosmos DB-account uit de Azure Portal wilt verwijderen, gaat u naar uw resource en selecteert u Account verwijderen in de bovenste menubalk. Zie gedetailleerde instructies voor het verwijderen van een Azure Cosmos DB-account.
Volgende stappen
Meer informatie over reageren op IoT Hub gebeurtenissen met behulp van Event Grid om acties te activeren
Meer informatie over wat u nog meer kunt doen met Event Grid
Meer informatie over het gebruik van Event Grid en Azure Monitor voor het bewaken, diagnosticeren en oplossen van problemen met apparaatconnectiviteit met IoT Hub