Självstudier: Skicka e-postmeddelanden om Azure IoT Hub-händelser med Event Grid och Logic Apps
Med Azure Event Grid kan du reagera på händelser i IoT Hub genom att utlösa åtgärder i underordnade företagsprogram.
Den här artikeln går igenom en exempelkonfiguration som använder IoT Hub och Event Grid. I slutet har du konfigurerat en Azure-logikapp för att skicka ett e-postmeddelande varje gång en enhet ansluter eller kopplar från till din IoT-hubb. Event Grid kan användas för att få meddelanden i tid om att kritiska enheter kopplas från. Mått och diagnostik kan ta flera minuter (till exempel 20 minuter eller mer) att visas i loggar/aviseringar. Längre bearbetningstider kan vara oacceptabla för kritisk infrastruktur.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
- Ett e-postkonto från alla e-postleverantörer som stöds av Azure Logic Apps, till exempel Office 365 Outlook eller Outlook.com. Det här e-postkontot används för att skicka händelsemeddelandena.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Skapa en IoT-hubb
Du kan snabbt skapa en ny IoT-hubb med hjälp av Azure Cloud Shell-terminalen i portalen.
Logga in på Azure-portalen.
Längst upp till höger på sidan väljer du knappen Cloud Shell.
Kör följande kommando för att skapa en ny resursgrupp:
az group create --name {your resource group name} --location westus
Kör följande kommando för att skapa en IoT-hubb:
az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1
Minimera Cloud Shell-terminalen. Du återgår till gränssnittet senare i självstudien.
Skapa en logikapp
Skapa sedan en logikapp och lägg till en HTTP Event Grid-utlösare som bearbetar begäranden från IoT Hub.
Skapa en resurs för en logikapp
I Azure-portalen väljer du Skapa en resurs, skriver sedan "logikapp" i sökrutan och väljer retur. Välj Logikapp i resultatet.
På nästa skärm väljer du Skapa.
Ge logikappen ett unikt namn i din prenumeration och välj sedan samma prenumeration, resursgrupp och plats som din IoT-hubb. Välj typ av förbrukningsplan .
Välj Granska + skapa.
Kontrollera inställningarna och välj sedan Skapa.
När resursen har skapats väljer du Gå till resurs.
I Logikappdesignern går du till sidan ned för att se mallar. Välj Tom logikapp så att du kan skapa logikappen från grunden.
Välj en utlösare
En utlösare är en specifik händelse som startar din logikapp. I den här självstudien tar utlösaren som utlöser arbetsflödet emot en begäran via HTTP.
Skriv HTTP i sökfältet för anslutningsprogram och utlösare.
Bläddra igenom resultaten och välj Begäran – När en HTTP-begäran tas emot som utlösare.
Välj Använd exempel på nyttolast för att skapa schema.
json
Kopiera nedanstående och ersätt platshållarvärdena<>
med dina egna.Klistra in JSON för enhetsanslutet händelseschema i textrutan och välj sedan Klar:
[{ "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" }]
Viktigt!
Se till att klistra in JSON-kodfragmentet i rutan som tillhandahålls av nyttolasten Använd exempel för att generera schemalänken och inte direkt i rutan JSON-schema för begärandetext. Exempelnyttolastlänken ger ett sätt att generera JSON-innehållet baserat på JSON-kodfragmentet. Den slutliga JSON som hamnar i begärandetexten skiljer sig från JSON-kodfragmentet.
Den här händelsen publiceras när en enhet är ansluten till en IoT-hubb.
Kommentar
Du kan få ett popup-meddelande som säger: Kom ihåg att inkludera en innehållstyprubrik som är inställd på application/json i din begäran. Du kan ignorera det här förslaget på ett säkert sätt och gå vidare till nästa avsnitt.
Skapa en åtgärd
Åtgärder är alla steg som utförs när utlösaren har startat logikappens arbetsflöde. I den här självstudiekursen är åtgärden att skicka ett e-postmeddelande från din e-postleverantör.
Välj Nytt steg. Ett fönster visas där du uppmanas att välja en åtgärd.
Sök efter Outlook.
Baserat på din e-leverantör söker du och väljer matchande anslutningsapp. I den här självstudien används Outlook.com. Stegen för andra e-postleverantörer liknar dessa. Du kan också använda Office 365 Outlook för att hoppa över inloggningssteget.
Välj åtgärden Skicka ett e-postmeddelande (V2).
Välj Logga in och logga in på ditt e-postkonto. Välj Ja för att låta appen komma åt din information.
Skapa din e-postmall.
Till: Ange e-postadressen som meddelandena ska skickas till. I den här självstudien använder du ett e-postkonto som du kan komma åt för testning.
Ämne: Fyll i texten för ämnet. När du klickar på textrutan Ämne kan du välja dynamiskt innehåll som ska inkluderas. I den här självstudien används
IoT Hub alert: {eventType}
till exempel . Om du inte kan se dynamiskt innehåll väljer du hyperlänken Lägg till dynamiskt innehåll för att aktivera eller inaktivera vyn Dynamiskt innehåll .
När du har
eventType
valt visas e-postformulärets utdata hittills. Välj Skicka och e-post (V2) för att redigera brödtexten i din e-post.- Brödtext: Skriv texten för din e-post. Välj JSON-egenskaper från valverktyget för att ta med dynamiskt innehåll baserat på händelsedata. Om du inte kan se det dynamiska innehållet klickar du på länken Lägg till dynamiskt innehåll under textrutan Brödtext. Om du inte ser fälten som du vill ha klickar du på Fler på skärmen för dynamiskt innehåll för att ta med fälten från föregående åtgärd.
Din e-postmall kanske liknar den i det här exemplet:
Välj Spara i Logikappdesignern.
Kopiera HTTP-URL:en
Innan du lämnar Logic Apps Designer kopierar du url:en som logikappen lyssnar på efter en utlösare. Du använder den här URL:en för att konfigurera Event Grid.
Expandera konfigurationsrutan för utlösaren När en HTTP-begäran tas emot genom att klicka på den.
Kopiera värdet för HTTP POST-URL genom att välja kopieringsknappen bredvid det.
Spara den här URL:en så att du kan referera till den i nästa avsnitt.
Konfigurera prenumerationen för IoT Hub-händelser
I det här avsnittet ska du konfigurera din IoT-hubb så att den publicerar händelser när de inträffar.
Gå till din IoT-hubb på Azure Portal. Du hittar din IoT-hubb genom att välja IoT Hub på Din Azure-instrumentpanel och sedan välja din IoT Hub-instans i listan över resurser.
Välj Händelser.
Välj Händelseprenumeration.
Skapa händelseprenumerationen med följande värden:
I avsnittet Information om händelseprenumeration:
- Ange ett namn för händelseprenumerationen.
- Välj Event Grid-schema för händelseschema.
I avsnittet Ämnesinformation:
- Bekräfta att IoT Hub har angetts som Ämnestyp.
- Bekräfta att namnet på IoT-hubben har angetts som värdet för fältet Källresurs.
- Ange ett namn för systemämnet som ska skapas åt dig. Mer information om systemämnen finns i Översikt över systemämnen.
I avsnittet Händelsetyper:
Välj listrutan Filtrera till händelsetyper.
Avmarkera kryssrutorna Enhetsskapad och Borttagen enhet, så att endast kryssrutorna Enhet Anslut och Frånkopplad enhet är markerade.
I avsnittet Information om slutpunkt:
- Välj Slutpunktstyp som Webbhook.
- Klicka på Välj en slutpunkt, klistra in URL:en som du kopierade från din logikapp och bekräfta valet.
När du är klar bör fönstret se ut som i följande exempel:
Välj Skapa.
Simulera en ny enhet som ansluter och skickar telemetri
Testa logikappen genom att snabbt simulera en enhetsanslutning med hjälp av Azure CLI.
Välj knappen Cloud Shell för att öppna terminalen igen.
Kör följande kommando för att skapa en simulerad enhetsidentitet:
az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
Bearbetningen kan ta en minut. Du ser en JSON-utskrift i konsolen när den har skapats.
Kör följande kommando för att simulera att ansluta enheten till IoT Hub och skicka telemetri:
az iot device simulate -d simDevice -n {YourIoTHubName}
När den simulerade enheten ansluter till IoT Hub får du ett e-postmeddelande som meddelar dig om händelsen "Enhet Anslut ed".
När simuleringen är klar får du ett e-postmeddelande som meddelar dig om en "DeviceDisconnected"-händelse.
Rensa resurser
I den här självstudiekursen användes resurser som medför kostnader för din Azure-prenumeration. När du är klar med att testa självstudien och testa dina resultat inaktiverar eller tar du bort resurser som du inte vill behålla.
Om du vill ta bort alla resurser som skapats i den här självstudien tar du bort resursgruppen.
Välj Resursgrupper och välj sedan den resursgrupp som du skapade för den här självstudien.
I fönstret Resursgrupp väljer du Ta bort resursgrupp. Du uppmanas att ange resursgruppens namn och sedan kan du ta bort det. Alla resurser som finns däri tas också bort.
Nästa steg
- Lär dig mer om hur du kan svara på IoT Hub-händelser med hjälp av Event Grid för att utlösa åtgärder.
- Lär dig att ordna enhetsanslutningshändelser och frånkopplingar
- Lär dig mer om vad du kan göra med Event Grid.
En fullständig lista över logik Anslutningsverktyg som stöds finns i
översikt över Anslut orer.