Verbindingsgebeurtenissen voor het apparaat aanvragen bij Azure IoT Hub met behulp van Azure Cosmos DB
Azure Event Grid helpt u bij het bouwen van toepassingen op basis van gebeurtenissen en integreert eenvoudig IoT-gebeurtenissen in uw bedrijfsoplossingen. In dit artikel wordt u begeleid bij een installatie met cosmos DB, logische app, IoT Hub-gebeurtenissen en een gesimuleerde Raspberry Pi voor het verzamelen en opslaan van verbindings- en losgekoppelde gebeurtenissen van een apparaat.
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 apparaatactiviteit 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 er nog geen 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 deze voor de partitiesleutel.Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u er gratis een maken voordat u begint.
Een IoT-hub in uw Azure-abonnement. Als u nog geen hub hebt, kunt u de stappen volgen in Een IoT-hub maken.
Een logische app maken
We gaan een logische app maken en een Event Grid-trigger toevoegen waarmee de resourcegroep voor uw virtuele machine wordt bewaakt.
Een logische app maken
Selecteer in Azure Portal +Een resource maken, selecteer Integratie en vervolgens Logische app.
Vul het formulier in om een nieuwe logische app te maken met:
Uw abonnement
Uw resourcegroep (of maak een nieuwe)
Een logische app-naam die uniek is in uw abonnement
De regio van uw IoT-hub
Nee voor het inschakelen van Log Analytics
Een abonnementstype Verbruik
Notitie
Het type Verbruiksabonnement is de optie waarmee de ontwerper van logische apps in de gebruikersinterface wordt ingeschakeld. Als u Standard (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 de resource. Ontwerper van logische apps toont sjablonen voor veelvoorkomende patronen, zodat u sneller aan de slag kunt.
Schuif in de ontwerpfunctie voor logische apps totdat u de sectie Sjablonen ziet en 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 gebruiken om een schema te genereren.
Plak de volgende JSON-voorbeeldcode 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/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" }]
Een voorwaarde maken
Voorwaarden helpen bij het uitvoeren van specifieke acties nadat deze specifieke voorwaarde is doorgegeven. Voor dit artikel moet worden gecontroleerd 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 ontwerpfunctie voor logische apps.
Selecteer + Nieuwe stap, vervolgens het ingebouwde tabblad, zoek en selecteer het besturingselement met de naam Voorwaarde.
Wijzig and to Or in uw voorwaarde, omdat we verbindingsgebeurtenissen of verbroken gebeurtenissen in één parsering willen vastleggen.
Selecteer in het vak Kies een waarde en er wordt een pop-up weergegeven met de dynamische inhoud , de velden die kunnen worden geselecteerd.
Kies eventType. De pop-up wordt gesloten en u ziet dat hoofdtekst wordt geplaatst in Selecteer een uitvoer uit de vorige stappen, automatisch. Selecteer Voorwaarde om de voorwaardelijke instructie opnieuw te openen.
Houd de waarde gelijk aan .
Typ Microsoft.Devices.DeviceConnected als de 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: Kiezen
Current item
uit de lijst met parameters voor dynamische inhoudSla uw logische app op.
HTTP-URL kopiëren
Voordat u 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 selectievakje Wanneer een HTTP-aanvraag wordt ontvangen 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 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 en klikt u op eindpunt selecteren en plakt u de URL die u hebt gekopieerd uit uw logische app 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. Wanneer Azure-services worden gemaakt of gewijzigd, kan het initiëren van de volgende stap in uw pijplijn te snel leiden tot onnodige fouten. Als uw IoT-hub bijvoorbeeld niet actief is, is deze niet gereed voor het ontvangen van gebeurtenissen. Controleer de overzichtspagina van uw IoT-hub om te zien of uw IoT-hub al dan niet actief is. Als dat niet het is, ziet u boven aan de pagina een waarschuwing.
Apparaat uitvoeren en gebeurtenissen observeren
Nu uw gebeurtenisabonnement is ingesteld, gaan we testen door een apparaat te verbinden.
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 verbindingsreeks s en sleutels ingevuld. Kopieer en sla de primaire verbindingsreeks 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 apparaat verbonden gebeurtenis geactiveerd.
Vervang in het coderingsgebied de tijdelijke aanduiding in regel 15 door uw Azure IoT Hub-apparaat verbindingsreeks dat 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 met de sensorgegevens en de berichten die naar uw IoT-hub worden verzonden.
U kunt de overzichtspagina van uw logische app controleren om te controleren of uw logica wordt geactiveerd. Dit betekent geslaagd of mislukt. Als u hier kijkt, weet u wat de status van uw logische app is als er probleemoplossing nodig is. Verwacht een vertraging van 15 tot 30 seconden vanaf het moment dat de trigger wordt uitgevoerd. Als u problemen met uw logische app wilt oplossen, raadpleegt u dit artikel Over het oplossen van fouten .
Selecteer Stoppen om de simulator te stoppen, waardoor een gebeurtenis Apparaat verbroken wordt geactiveerd. Deze gebeurtenis meldt zich aan op de pagina Overzicht van logische apps, net zoals de verbindingsgebeurtenis die daar is vastgelegd.
U hebt nu een voorbeeldtoepassing uitgevoerd om verbindings- en losgekoppelde gebeurtenissen van uw apparaat te verzamelen, die naar uw IoT-hub gaan.
Gebeurtenissen bekijken in Azure Cosmos DB
U ziet de resultaten van de uitgevoerde logische app 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 uniek id
document 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.
De Azure CLI gebruiken
In plaats van 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 Verwijderen of Uitschakelen op de blade Overzicht.
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 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