Dela via


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 Logic App för att skicka ett e-postmeddelande varje gång en enhet ansluter eller kopplar från 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 något Azure-konto skapar du ett kostnadsfritt 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.

Skapa en IoT-hubb

Du kan snabbt skapa en ny IoT-hubb med hjälp av Azure Cloud Shell-terminalen i portalen.

  1. Logga in på Azure-portalen.

  2. Längst upp till höger på sidan väljer du knappen Cloud Shell.

    Skärmbild av hur du öppnar Azure Cloud Shell från Azure Portal.

  3. Kör följande kommando för att skapa en ny resursgrupp:

    az group create --name {your resource group name} --location westus
    
  4. 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 
    
  5. Minimera Cloud Shell-terminalen. Du återvänder till skalet 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

  1. I Azure-portalen väljer du Skapa en resurs, sedan skriver du "logik-app" i sökrutan och trycker på Retur. Välj Logic App från resultaten.

    Skärmbild av hur du väljer logikappen från en lista över resurser.

  2. På nästa skärm väljer du Skapa.

  3. På sidan Skapa logikapp väljer du Förbrukning (flera klientorganisationer) och sedan Välj.

  4. På sidan Skapa logikapp (flera klientorganisationer) ger du logikappen ett unikt namn i din prenumeration och väljer sedan samma prenumeration, resursgrupp och plats som din IoT-hubb.

    Skärmbild av hur du konfigurerar logikappen.

  5. Välj Granska + skapa.

  6. Kontrollera inställningarna och välj sedan Skapa.

  7. När resursen har skapats väljer du Gå till resurs.

  8. I resursmenyn väljer du Logikappmallar under Utvecklingsverktyg.

  9. I arbetsfönstret väljer du Tomt arbetsflöde så att du kan starta från ett tomt arbetsflöde.

    Skärmbild av logikappmallarna.

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.

  1. I arbetsflödesdesignern väljer du Lägg till en utlösare.

  2. Skriv HTTP i sökfältet för anslutningsprogram och utlösare.

  3. Bläddra igenom resultaten och välj Begäran – När en HTTP-begäran tas emot som utlösare.

    Skärmbild av fönstret Lägg till en utlösare i arbetsflödesdesignern.

  4. I utlösarkonfigurationsrutan väljer du Använd exempelnyttolast för att generera schema.

    Skärmbild av informationsrutan för utlösarens.

  5. Kopiera följande json och ersätt platshållarvärdena <> med dina egna.

  6. Klistra in JSON för enhetsanslutet händelseschema i textrutan Ange eller klistra in en JSON-exempelnyttolast 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 länken Använd exempelnytlast för att generera schema 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.

  7. I verktygsfältet för designern väljer du Spara.

    Anteckning

    Du kan få ett popup-meddelande som säger: Kom ihåg att inkludera ett innehållstyphuvud som är inställt 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.

  8. Stäng informationsrutan för utlösaren.

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.

  1. I designern väljer du plustecknet (+) under utlösaren och väljer sedan Lägg till en åtgärd.

  2. I rutan Lägg till en åtgärd söker du efter Outlook.

  3. Baserat på din e-postleverantör, hitta och välj den matchande anslutningen. I den här självstudien används Outlook.com som e-postleverantör. Om du vill använda motsvarande anslutningsapp väljer du åtgärden Skicka ett e-postmeddelande (V2) under 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.

    Skärmbild av rutan Lägg till en åtgärd.

  4. Välj Logga in och logga in på ditt e-postkonto. Välj Ja för att låta appen komma åt din information.

  5. 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 väljer textrutan Ämne kan du antingen välja funktionsikonen som visas bredvid textrutan eller skriva snedstrecket (/) och välja alternativet Infoga dynamisk innehållslista för att inkludera dynamiskt innehåll. I den här självstudien används till exempel IoT Hub alert: {eventType}.

    När du har eventTypevalt visas e-postformulärets utdata hittills. Välj Skicka och e-post (V2) för att redigera brödtexten i din e-post.

    Skärmbild av utdataformuläret för komprimerad brödtext.

    • Innehåll: 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 väljaren väljer du textrutan Brödtext och väljer sedan funktionsikonen som visas bredvid textrutan för att inkludera uttryck och dynamiskt innehåll. Om du inte ser de fält du vill använda väljer du Visa mer på skärmen Dynamiskt innehåll för att inkludera fälten från föregående åtgärd.

    E-postmallen kan se ut så här:

    Skärmbild av hur du skapar ett händelsemeddelande i mallen.

  6. Välj Spara i arbetsflödesdesignern.

Kopiera HTTP-URL:en

Innan du lämnar arbetsflödesdesignern kopierar du URL:en som logikappen väntar på som utlösare. Du använder den här URL:en för att konfigurera Event Grid.

  1. Expandera konfigurationsrutan När en HTTP-begäran tas emot genom att välja den.

  2. Kopiera värdet för HTTP-URL genom att välja kopieringsknappen bredvid den.

    Skärmbild av hur du kopierar HTTP-URL:en för utlösaren.

  3. 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 konfigurerar du din IoT-hubb för att publicera händelser när de inträffar.

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

  2. Välj händelser.

    Skärmbild av tjänstmenyn för din IoT-hubb i Azure-portalen med kommandot Händelser markerat.

  3. Välj Händelseprenumeration.

    Skärmbild av arbetsfönstret för din IoT-hubb i Azure-portalen och markera kommandot Händelseprenumeration i kommandofältet.

  4. Skapa händelseprenumerationen med följande värden:

    1. I avsnittet Information om händelseprenumeration:

      1. Ange ett namn för händelseprenumerationen.
      2. Välj Event Grid-schema för händelseschema.
    2. I avsnittet Ämnesinformation:

      1. Bekräfta att IoT Hub har angetts som Ämnestyp.
      2. Bekräfta att namnet på IoT-hubben har angetts som värdet för fältet Källresurs.
      3. Ange ett namn för systemavsnittet som ska skapas åt dig. Mer information om systemämnen finns i Systemavsnitt i Azure Event Grid.
    3. I avsnittet Händelsetyper:

      1. Välj listrutan Filtrera till händelsetyper.

      2. Avmarkera kryssrutorna Skapad och Borttagenenhet, så att endast kryssrutorna Enhetsanslutenoch Frånkopplad enhet är markerade.

        Skärmbild av sidan Skapa händelseprenumeration i Azure-portalen som visar avsnittet Händelsetyper.

    4. I avsnittet Information om slutpunkt:

      1. Välj Slutpunktstyp som Webbhook.
      2. Välj en slutpunkt, klistra in url:en som du kopierade från logikappen och bekräfta markeringen.

      Skärmbild av sidan Skapa händelseprenumeration i Azure-portalen som visar avsnittet Slutpunktsinformation.

      När du är klar bör fönstret se ut som i följande exempel:

      Skärmbild av sidan Skapa händelseprenumeration i Azure Portal.

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

  1. Välj knappen Cloud Shell för att öppna terminalen igen.

  2. 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 bearbetningen är klar.

  3. 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}
    
  4. När den simulerade enheten ansluter till IoT Hub får du ett e-postmeddelande om händelsen "DeviceConnected".

  5. När simuleringen är klar får du ett e-postmeddelande som meddelar dig om en "DeviceDisconnected"-händelse.

    Skärmbild av det e-postmeddelande som du bör få.

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 prova självstudien och testa dina resultat, ta bort eller inaktivera 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.

  1. Välj Resursgrupper och välj sedan den resursgrupp som du skapade för den här självstudien.

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

En fullständig lista över Logic App-kontakter som stöds finns i: