Zelfstudie: E-mailmeldingen over gebeurtenissen van Azure IoT Hub verzenden met Event Grid en Logic Apps

Azure Event Grid maakt het mogelijk om te reageren op gebeurtenissen in IoT Hub door acties in zakelijke toepassingen verderop in de werkstroom te activeren.

In dit artikel wordt u stapsgewijs begeleid bij het maken van een voorbeeldconfiguratie waarin IoT Hub en Event Grid worden gebruikt. Aan het einde van het artikel beschikt u over een logische Azure-app die een e-mailmelding verstuurt zodra er een apparaat verbinding maakt met uw IoT-hub of deze verbinding wordt verbroken. Event Grid kan worden gebruikt om tijdig meldingen te ontvangen over kritieke apparaten die de verbinding verbreken. Metrische gegevens en diagnostische gegevens kunnen enkele minuten (zoals 20 minuten of meer) duren om weer te geven in logboeken/waarschuwingen. Langere verwerkingstijden kunnen onaanvaardbaar zijn voor kritieke infrastructuur.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

  • Een e-mailaccount van een e-mailprovider die door Azure Logic Apps wordt ondersteund, bijvoorbeeld Office 365 Outlook of Outlook.com. Dit e-mailaccount wordt gebruikt voor het verzenden van de gebeurtenismeldingen.

Een IoT Hub maken

U kunt snel een nieuwe IoT-hub maken met behulp van de Azure Cloud Shell-terminal in de portal.

  1. Meld u aan bij de Azure-portal.

  2. Klik in de rechterbovenhoek van de pagina en selecteer de knop Cloud Shell.

    Screenshot of how to open the Azure Cloud Shell from the Azure portal.

  3. Voer de volgende opdracht uit om een nieuwe resourcegroep te maken:

    az group create --name {your resource group name} --location westus
    
  4. Voer de volgende opdracht uit om een IoT-hub te maken:

    az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1 
    
  5. Minimaliseer de Cloud Shell-terminal. U keert later in de zelfstudie terug naar de shell.

Een logische app maken

Maak vervolgens een logische app en voeg een HTTP Event Grid-trigger toe waarmee aanvragen van IoT Hub worden verwerkt.

Een logische app maken

  1. Selecteer in de Azure PortalEen resource maken, typ ' logische app ' in het zoekvak en selecteer Enter. Selecteer Logische app in de resultaten.

    Screenshot of how to select the logic app from a list of resources.

  2. Selecteer Maken in het volgende scherm.

  3. Geef uw logische app een unieke naam in uw abonnement en selecteer vervolgens hetzelfde abonnement, dezelfde resourcegroep en locatie als uw IoT-hub. Kies het type verbruiksabonnement .

    Screenshot of how to configure your logic app.

  4. Selecteer Controleren + maken.

  5. Controleer de instellingen en selecteer vervolgens Maken.

  6. Selecteer Ga naar resource zodra de resource is gemaakt.

  7. Blader omlaag in de Ontwerper van logische apps naar Sjablonen. Kies Lege logische app, zodat u de logische app helemaal zelf kunt ontwerpen.

    Screenshot of the Logic App Designer templates.

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 voor connectors en triggers.

  2. Scroll door de resultaten en selecteer Aanvraag - Wanneer een HTTP-aanvraag is ontvangen als de trigger.

    Select HTTP request trigger

  3. Selecteer Voorbeeldnettolading gebruiken om een schema te genereren.

    Use sample payload

  4. Kopieer de json onderstaande waarden en vervang de waarden <> van de tijdelijke aanduiding door uw eigen waarden.

  5. Plak de JSON-code Apparaat verbonden-gebeurtenisschema in het tekstvak en selecteer vervolgens Gereed:

      [{  
       "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
       "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
       "subject": "devices/LogicAppTestDevice",
       "eventType": "Microsoft.Devices.DeviceConnected",
       "eventTime": "2018-06-02T19:17:44.4383997Z",
       "data": {
           "deviceConnectionStateEventInfo": {
             "sequenceNumber":
               "000000000000000001D4132452F67CE200000002000000000000000000000001"
           },
         "hubName": "<hub name>",
         "deviceId": "LogicAppTestDevice",
         "moduleId" : "DeviceModuleID"
       }, 
       "dataVersion": "1",
       "metadataVersion": "1"
     }]
    

    Belangrijk

    Plak het JSON-fragment in het vak van de nettolading Voorbeeld gebruiken om een schemakoppeling te genereren en niet rechtstreeks in het vak JSON-schema voor aanvraagbody. De koppeling naar de nettolading van het voorbeeld biedt een manier om de JSON-inhoud te genereren op basis van het JSON-fragment. De uiteindelijke JSON die in de aanvraagbody terechtkomt, verschilt van het JSON-fragment.

    Deze gebeurtenis wordt gepubliceerd wanneer een apparaat is verbonden met een IoT-hub.

Notitie

Mogelijk ontvangt u een pop-upmelding met de mededeling: Vergeet niet om een Content-Type-header op te nemen die is ingesteld op application/json in uw aanvraag. U kunt deze suggestie veilig negeren en verdergaan met de volgende sectie.

Een actie maken

Acties zijn stappen die worden uitgevoerd nadat de trigger de werkstroom van de logische app heeft gestart. Voor deze zelfstudie is de actie het verzenden van een e-mailmelding via uw e-mailprovider.

  1. Selecteer Nieuwe stap. Er wordt een venster weergegeven waarin u wordt gevraagd een actie te kiezen.

  2. Zoek naar Outlook.

  3. Zoek en selecteer de bijbehorende connector op basis van uw e-mailprovider. In deze zelfstudie wordt Outlook.com gebruikt. De stappen voor andere e-mailproviders zijn vergelijkbaar. U kunt ook Office 365 Outlook gebruiken om de aanmeldingsstap over te slaan.

    Select email provider connector

  4. Selecteer de actie Een e-mail verzenden (V2).

  5. Selecteer Aanmelden en meld u aan bij uw e-mailaccount. Selecteer Ja om de app toegang te geven tot uw gegevens.

  6. Bouw uw e-mailsjabloon.

    • Aan: voer het e-mailadres in waarop u de e-mailmeldingen wilt ontvangen. Voor deze zelfstudie gebruikt u een e-mailaccount dat u kunt gebruiken voor het testen.

    • Onderwerp: Vul de tekst voor het onderwerp in. Wanneer u op het tekstvak onderwerp klikt, kunt u dynamische inhoud selecteren die u wilt toevoegen. In deze zelfstudie wordt bijvoorbeeld IoT Hub alert: {eventType} gebruikt. Als u dynamische inhoud niet ziet, selecteert u de hyperlink Dynamische inhoud toevoegen om de dynamische inhoudsweergave in of uit te schakelen.

    Nadat u hebt eventTypegeselecteerd, ziet u de uitvoer van het e-mailformulier tot nu toe. Selecteer het bericht Verzenden en e-mail (V2) om de hoofdtekst van uw e-mail te bewerken.

    Screenshot of the condensed body output form.

    • Hoofdtekst: Schrijf de tekst voor uw e-mail. Selecteer de JSON-eigenschappen van het selector-hulpprogramma om dynamische inhoud op basis van gebeurtenisgegevens toe te voegen. Als u geen dynamische inhoud kunt zien, selecteert u de hyperlink Dynamische inhoud toevoegen onder het tekstvak Hoofdtekst. Als de velden die u wilt gebruiken niet worden weer gegeven, klikt u op Meer in het scherm Dynamische inhoud om de velden van de vorige actie toe te voegen.

    Uw e-mailsjabloon ziet er nu misschien uit als in dit voorbeeld:

    Screenshot of how to create an event email in the template.

  7. Kies Ja in de Logic Apps Designer.

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 configuratievak Wanneer een HTTP-aanvraag is ontvangen uit door erop te klikken.

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

    Copy the HTTP POST URL

  3. Sla deze URL op zodat u ernaar kunt verwijzen in de volgende sectie.

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. U kunt uw IoT-hub vinden door IoT Hub te selecteren in uw Azure-dashboard en vervolgens uw IoT Hub-exemplaar te selecteren in de lijst met resources.

  2. Selecteer Gebeurtenissen.

    Open the Event Grid details

  3. Selecteer Gebeurtenisabonnement.

    Create new event subscription

  4. Maak het gebeurtenisabonnement met de volgende waarden:

    1. Ga als volgt te werk in de sectie GEBEURTENISABONNEMENTDETAILS:

      1. Geef een naam op voor het gebeurtenisabonnement.
      2. Selecteer Gebeurtenisrasterschema voor Gebeurtenisschema.
    2. Ga als volgt te werk in de sectie ONDERWERPDETAILS:

      1. Controleer of het Type onderwerp is ingesteld op IoT Hub.
      2. Controleer of de naam van de IoT-hub is ingesteld als de waarde voor het veld Bronresource.
      3. Voer een naam in voor het systeemonderwerp dat voor u wordt gemaakt. Zie Overzicht van systeemonderwerpen voor meer informatie over systeemonderwerpen.
    3. Ga als volgt te werk in de sectie GEBEURTENISTYPEN:

      1. Selecteer de vervolgkeuzelijst Filteren op gebeurtenistypen.

      2. Schakel de selectievakjes voor Apparaat gemaakt en Apparaat verwijderd uit, zodat alleen de selectievakjes Apparaat verbonden en Verbinding met apparaat verbroken zijn geselecteerd.

        select subscription event types

    4. Ga als volgt te werk in de sectie EINDPUNTDETAILS:

      1. Selecteer Eindpunttype als Webhook.
      2. Klik op Eindpunt selecteren, plak de URL die u hebt gekopieerd vanuit uw logische app en bevestig uw selectie.

      select endpoint url

      Wanneer u klaar bent, ziet het deelvenster eruit als in het volgende voorbeeld:

      Screenshot of your 'Create Event Subscription' page in the Azure portal.

  5. Selecteer Maken.

Een nieuw apparaat simuleren voor het verbinden en verzenden van telemetrie

Test uw logische app door snel een apparaatverbinding te simuleren met de Azure CLI.

  1. Selecteer de knop Cloud Shell om uw terminal opnieuw te openen.

  2. Voer de volgende opdracht uit om een identiteit van een gesimuleerd apparaat te maken:

    az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
    

    De verwerking kan een minuut duren. U ziet een JSON-afdruk in uw console zodra deze is gemaakt.

  3. Voer de volgende opdracht uit om het verbinden van uw apparaat met IoT Hub en het verzenden van telemetrie te simuleren:

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  4. Wanneer het gesimuleerde apparaat verbinding maakt met IoT Hub, ontvangt u een e-mailbericht met de melding 'Apparaat Verbinding maken ed'.

  5. Wanneer de simulatie is voltooid, ontvangt u een e-mail met de melding 'DeviceDisconnected'.

    Screenshot of the email you should receive.

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.

Als u alle resources wilt verwijderen die u in deze zelfstudie hebt gemaakt, verwijdert u de resourcegroep.

  1. Selecteer Resourcegroepen en selecteer vervolgens de resourcegroep die u hebt gemaakt voor deze zelfstudie.

  2. Selecteer Resourcegroep verwijderen op het deelvenster Resourcegroep. U wordt gevraagd de naam van de resourcegroep in te voeren en vervolgens kunt u deze verwijderen. Alle resources in de resourcegroep worden ook verwijderd.

Volgende stappen

Zie voor een volledige lijst met ondersteunde logic App-connector s de

overzicht van Verbinding maken ors.