Share via


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:

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

  2. Een IoT Hub-gebeurtenis legt de apparaatactiviteit 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 gaan maken. Deze installatie laat zien hoe alle services en apparaten zijn verbonden.

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

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

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

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

    Schermopname van het maken van een logische app in 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 de resource. Ontwerper van logische apps toont sjablonen voor veelvoorkomende patronen, zodat u sneller aan de slag kunt.

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

  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 een http-aanvraagtrigger.

  3. Selecteer Voorbeeldnettolading gebruiken om een schema te genereren.

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

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

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

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

  2. Wijzig and to Or in uw voorwaarde, omdat we verbindingsgebeurtenissen of verbroken gebeurtenissen in één parsering willen vastleggen.

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

      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: Kiezen Current item uit de lijst met parameters voor dynamische inhoud

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

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

  1. Vouw het selectievakje Wanneer een HTTP-aanvraag wordt ontvangen 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 waar de knop Gebeurtenissen zich bevindt in het ioT Hub-menu.

  3. Selecteer + Gebeurtenisabonnement.

    Nieuw gebeurtenisabonnement maken

  4. Vul details van gebeurtenisabonnement in: geef een beschrijvende naam op en selecteer Event Grid-schema als 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 om te zoeken naar

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

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

    Schermopname van een IoT Hub-fout waarin staat dat deze niet actief is.

Apparaat uitvoeren en gebeurtenissen observeren

Nu uw gebeurtenisabonnement is ingesteld, gaan we testen door een apparaat te verbinden.

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 verbindingsreeks s en sleutels ingevuld. Kopieer en sla de primaire verbindingsreeks 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 apparaat verbonden gebeurtenis geactiveerd.

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

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

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

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

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

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

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

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

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.

  1. Ga naar uw logische app.

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

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