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.

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.

    Screenshot of how to open the Azure Cloud Shell from the 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 å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

  1. I Azure-portalen väljer du Skapa en resurs, skriver sedan "logikapp" i sökrutan och väljer retur. Välj Logikapp i resultatet.

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

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

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

    Screenshot of how to configure your logic app.

  4. Välj Granska + skapa.

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

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

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

    Screenshot of the Logic App Designer templates.

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. Skriv HTTP i sökfältet för anslutningsprogram och utlösare.

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

    Select HTTP request trigger

  3. Välj Använd exempel på nyttolast för att skapa schema.

    Use sample payload

  4. json Kopiera nedanstående och ersätt platshållarvärdena <> med dina egna.

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

  1. Välj Nytt steg. Ett fönster visas där du uppmanas att välja en åtgärd.

  2. Sök efter Outlook.

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

    Select email provider connector

  4. Välj åtgärden Skicka ett e-postmeddelande (V2).

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

  6. 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 eventTypevalt visas e-postformulärets utdata hittills. Välj Skicka och e-post (V2) för att redigera brödtexten i din e-post.

    Screenshot of the condensed body output form.

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

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

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

  1. Expandera konfigurationsrutan för utlösaren När en HTTP-begäran tas emot genom att klicka på den.

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

    Copy the HTTP POST URL

  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 ska du konfigurera din IoT-hubb så att den publicerar 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.

    Open the Event Grid details

  3. Välj Händelseprenumeration.

    Create new event subscription

  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 systemämnet som ska skapas åt dig. Mer information om systemämnen finns i Översikt över systemämnen.
    3. I avsnittet Händelsetyper:

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

      2. Avmarkera kryssrutorna Enhetsskapad och Borttagen enhet, så att endast kryssrutorna Enhet Anslut ochFrånkopplad enhet är markerade.

        select subscription event types

    4. I avsnittet Information om slutpunkt:

      1. Välj Slutpunktstyp som Webbhook.
      2. Klicka på Välj en slutpunkt, klistra in URL:en som du kopierade från din logikapp och bekräfta valet.

      select endpoint url

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

      Screenshot of your 'Create Event Subscription' page in the 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 den har skapats.

  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 som meddelar dig om händelsen "Enhet Anslut ed".

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

    Screenshot of the email you should receive.

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.

  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 logik Anslutningsverktyg som stöds finns i

översikt över Anslut orer.