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:

  1. Het Pi-apparaat met behulp van uw IoT Hub-apparaatsleutel wordt gestart en vervolgens gestopt

  2. Een IoT Hub gebeurtenis legt de activiteit van het apparaat vast en verzendt vervolgens een HTTP-aanvraag naar uw logische app

  3. De logische app verwerkt de HTTP-aanvraag op basis van een voorwaarde die u hebt ingesteld

  4. De logische app registreert verbindings- of verbroken gebeurtenissen in een nieuw document in Cosmos DB

    Schermopname van de installatie die we voor dit artikel maken. Deze installatie laat zien hoe alle services en apparaten zijn verbonden.

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

  1. Selecteer in de Azure Portalde optie +Een resource maken, selecteer Integratie en vervolgens Logische app.

    Schermopname van het zoeken en selecteren van een logische app in de Azure Portal.

  2. 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.

    Schermopname van het maken van een logische app in de Azure Portal.

  3. Selecteer Beoordelen en maken om uw configuratie te controleren en selecteer vervolgens Maken om de logische app te maken.

  4. 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.

  5. 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.

  1. Typ HTTP in de zoekbalk connectors en triggers en druk op Enter.

  2. Selecteer de aanvraag Wanneer een HTTP-aanvraag wordt ontvangen als de trigger.

    Schermopname van het vinden van select HTTP-aanvraagtrigger.

  3. Selecteer Voorbeeldnettolading om een schema te genereren.

    Schermopname van het gebruik van een voorbeeldpayload om een schema te genereren.

  4. 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"
    }]
    

    Schermopname van de voorbeeld-JSON-nettolading die in het tekstvak in Azure is geplakt.

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.

  1. Selecteer + Nieuwe stap, vervolgens het tabblad Ingebouwd en zoek en selecteer het besturingselement met de naam Voorwaarde.

  2. Wijzig in uw voorwaarde En in Of, omdat we verbindingsgebeurtenissen of verbroken gebeurtenissen in één parse willen vastleggen.

  3. 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.

      Schermopname van de volledige voorwaarde Voor elke voorwaarde.

  4. Klik in het dialoogvenster indien waar op Een actie toevoegen.

    Schermopname van het vak 'Indien waar' in Azure.

  5. Zoek naar Cosmos DB en selecteer Azure Cosmos DB — Document maken of bijwerken (V3)

    Schermopname van de zoekopdracht naar Azure Cosmos DB.

  6. 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 inhoud

    Schermopname van een item Opgeslagen procedure uitvoeren (V3) met 'Nieuwe parameter toevoegen' geselecteerd.

  7. Sla 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.

  1. Vouw het configuratievak Wanneer een HTTP-aanvraag wordt ontvangen uit door deze te selecteren.

  2. Kopieer de waarde van URL voor HTTP POST door de knop URL kopiëren ernaast te selecteren.

    Schermopname van waar u de HTTP-URL kunt vinden die u wilt kopiëren.

  3. 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.

  1. Ga in Azure Portal naar uw IoT-hub.

  2. Selecteer Gebeurtenissen.

    Schermopname van de locatie van de knop Gebeurtenissen in het menu IoT Hub.

  3. Selecteer + Gebeurtenisabonnement.

    Nieuw gebeurtenisabonnement maken

  4. Vul details van gebeurtenisabonnement in: geef een beschrijvende naam op en selecteer Event Grid-schema als het gebeurtenisschema.

  5. Maak een systeemonderwerpnaam voor uw IoT Hub-resource.

  6. 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.

    Gebeurtenistypen instellen waar naar moet worden gezocht

  7. 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.

    Eindpunt-URL selecteren

  8. Het formulier moet er nu uitzien zoals in het volgende voorbeeld:

    Schermopname van het formulier om een gebeurtenisabonnement te maken.

    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.

    Schermopname van een IoT Hub fout die aangeeft dat deze niet actief is.

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

  1. Selecteer apparaten in uw IoT-hub.

  2. Selecteer + Apparaat toevoegen bovenaan het deelvenster.

  3. Voor Apparaat-id, voert u Demo-Device-1 in.

  4. Selecteer Opslaan.

    Schermopname van de locatie van de knop Apparaat toevoegen.

  5. Klik nogmaals op het apparaat; nu worden de verbindingsreeksen en sleutels ingevuld. Kopieer de primaire verbindingsreeks en sla deze op voor later gebruik.

    Schermopname van de locatie van de primaire verbindingsreeks voor uw apparaat.

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.

  1. 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.

    Schermopname van waar u uw primaire connection string kunt toevoegen in het Raspberry Pi-script.

  2. 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.

    Schermopname van wat u kunt verwachten in de uitvoerconsole wanneer u de Raspberry Pi uitvoert.

  3. 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 .

    Schermopname van de statusupdates op de overzichtspagina van uw logische app.

  4. 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 idis 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.

Schermopname van de zojuist gegenereerde verbindingsstatus-gebeurtenis in een Cosmos DB-verzameling.

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.

  1. Ga naar uw logische app.

  2. 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

  1. Ga naar uw IoT-hub.

  2. Selecteer verwijderen op de blade Overzicht.

  3. 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.

  4. 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