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.
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Een IoT Hub maken
U kunt snel een nieuwe IoT-hub maken met behulp van de Azure Cloud Shell-terminal in de portal.
Meld u aan bij het Azure-portaal.
Klik in de rechterbovenhoek van de pagina en selecteer de knop Cloud Shell.
Voer de volgende opdracht uit om een nieuwe resourcegroep te maken:
az group create --name {your resource group name} --location westus
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
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
Selecteer in de Azure Portal Een resource maken, typ ' logische app ' in het zoekvak en selecteer Enter. Selecteer Logische app in de resultaten.
Selecteer Maken in het volgende scherm.
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 .
Selecteer Controleren + maken.
Controleer de instellingen en selecteer vervolgens Maken.
Selecteer Ga naar resource zodra de resource is gemaakt.
Blader omlaag in de Ontwerper van logische apps naar Sjablonen. Kies Lege logische app, zodat u de logische app helemaal zelf kunt ontwerpen.
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 voor connectors en triggers.
Scroll door de resultaten en selecteer Aanvraag - Wanneer een HTTP-aanvraag is ontvangen als de trigger.
Selecteer Voorbeeldnettolading gebruiken om een schema te genereren.
Kopieer de
json
onderstaande waarden en vervang de waarden<>
van de tijdelijke aanduiding door uw eigen waarden.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.
Selecteer Nieuwe stap. Er wordt een venster weergegeven waarin u wordt gevraagd een actie te kiezen.
Zoek naar Outlook.
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.
Selecteer de actie Een e-mail verzenden (V2).
Selecteer Aanmelden en meld u aan bij uw e-mailaccount. Selecteer Ja om de app toegang te geven tot uw gegevens.
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
eventType
geselecteerd, 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.- 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:
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.
Vouw het configuratievak Wanneer een HTTP-aanvraag is ontvangen uit door erop te klikken.
Kopieer de waarde van URL voor HTTP POST door de knop URL kopiëren ernaast te selecteren.
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.
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.
Selecteer Gebeurtenissen.
Selecteer Gebeurtenisabonnement.
Maak het gebeurtenisabonnement met de volgende waarden:
Ga als volgt te werk in de sectie GEBEURTENISABONNEMENTDETAILS:
- Geef een naam op voor het gebeurtenisabonnement.
- Selecteer Gebeurtenisrasterschema voor Gebeurtenisschema.
Ga als volgt te werk in de sectie ONDERWERPDETAILS:
- Controleer of het Type onderwerp is ingesteld op IoT Hub.
- Controleer of de naam van de IoT-hub is ingesteld als de waarde voor het veld Bronresource.
- Voer een naam in voor het systeemonderwerp dat voor u wordt gemaakt. Zie Overzicht van systeemonderwerpen voor meer informatie over systeemonderwerpen.
Ga als volgt te werk in de sectie GEBEURTENISTYPEN:
Selecteer de vervolgkeuzelijst Filteren op gebeurtenistypen.
Schakel de selectievakjes voor Apparaat gemaakt en Apparaat verwijderd uit, zodat alleen de selectievakjes Apparaat verbonden en Verbinding met apparaat verbroken zijn geselecteerd.
Ga als volgt te werk in de sectie EINDPUNTDETAILS:
- Selecteer Eindpunttype als Webhook.
- Klik op Eindpunt selecteren, plak de URL die u hebt gekopieerd vanuit uw logische app en bevestig uw selectie.
Wanneer u klaar bent, ziet het deelvenster eruit als in het volgende voorbeeld:
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.
Selecteer de knop Cloud Shell om uw terminal opnieuw te openen.
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.
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}
Wanneer het gesimuleerde apparaat verbinding maakt met IoT Hub, ontvangt u een e-mail met de melding 'DeviceConnected'.
Wanneer de simulatie is voltooid, ontvangt u een e-mail met de melding 'DeviceDisconnected'.
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.
Selecteer Resourcegroepen en selecteer vervolgens de resourcegroep die u hebt gemaakt voor deze zelfstudie.
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
- Ga voor meer informatie naar Reageren op gebeurtenissen van IoT Hub door met behulp van Event Grid acties te triggeren - Preview.
- Informatie over het rangschikken van gebeurtenissen ‘apparaat verbonden’ en ‘verbinding met apparaat verbroken’.
- Lees hier meer over wat u kunt doen met Event Grid.
Zie voor een volledige lijst met ondersteunde logic App-connector s de
Overzicht van connectors.