Samouczek: Wysyłanie powiadomień e-mail dotyczących zdarzeń usługi Azure IoT Hub przy użyciu usług Event Grid i Logic Apps

Usługa Azure Event Grid pozwala reagować na zdarzenia usługi IoT Hub dzięki akcjom wyzwalanym w podrzędnych aplikacjach biznesowych.

W tym artykule przedstawiono przykładową konfigurację korzystającą z usług IoT Hub i Event Grid. Na końcu masz skonfigurowaną aplikację logiki platformy Azure do wysyłania wiadomości e-mail z powiadomieniem za każdym razem, gdy urządzenie łączy się lub rozłącza z centrum IoT Hub. Usługa Event Grid może służyć do otrzymywania terminowego powiadomienia o rozłączeniu krytycznych urządzeń. Metryki i diagnostyka mogą potrwać kilka minut (np. 20 minut lub więcej), aby wyświetlić się w dziennikach/alertach. Dłuższe czasy przetwarzania mogą być niedopuszczalne dla infrastruktury krytycznej.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

  • Konto e-mail od dowolnego dostawcy poczty e-mail obsługiwanego przez usługę Azure Logic Apps, takie jak Office 365 Outlook lub Outlook.com. To konto e-mail służy do wysyłania powiadomień o zdarzeniach.

Tworzenie centrum IoT

Nowe centrum IoT można szybko utworzyć przy użyciu terminalu usługi Azure Cloud Shell w portalu.

  1. Zaloguj się w witrynie Azure Portal.

  2. W prawym górnym rogu strony wybierz przycisk Cloud Shell.

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

  3. Uruchom poniższe polecenie, aby utworzyć nową grupę zasobów:

    az group create --name {your resource group name} --location westus
    
  4. Uruchom następujące polecenie, aby utworzyć centrum IoT Hub:

    az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1 
    
  5. Zminimalizuj terminal usługi Cloud Shell. Wrócisz do powłoki w dalszej części samouczka.

Tworzenie aplikacji logiki

Następnie utwórz aplikację logiki i dodaj wyzwalacz usługi Event Grid HTTP, który przetwarza żądania z centrum IoT.

Tworzenie zasobu aplikacji logiki

  1. W witrynie Azure Portal wybierz pozycję Utwórz zasób, a następnie wpisz "aplikacja logiki" w polu wyszukiwania i wybierz pozycję Return. Wybierz pozycję Aplikacja logiki z wyników.

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

  2. Na następnym ekranie kliknij opcję Utwórz.

  3. Nadaj aplikacji logiki unikatową nazwę w subskrypcji, a następnie wybierz tę samą subskrypcję, grupę zasobów i lokalizację co centrum IoT. Wybierz typ planu Zużycie.

    Screenshot of how to configure your logic app.

  4. Wybierz pozycję Przejrzyj i utwórz.

  5. Sprawdź ustawienia, a następnie wybierz pozycję Utwórz.

  6. Po utworzeniu zasobu wybierz pozycję Przejdź do zasobu.

  7. W Projektant usługi Logic Apps na stronie w dół, aby wyświetlić pozycję Szablony. Wybierz pozycję Pusta aplikacja logiki, aby utworzyć aplikację logiki od podstaw.

    Screenshot of the Logic App Designer templates.

Wybieranie wyzwalacza

Wyzwalacz to konkretne zdarzenie, które uruchamia aplikację logiki. W tym samouczku wyzwalacz, który uruchamia przepływ pracy, odbiera żądanie za pośrednictwem protokołu HTTP.

  1. Na pasku wyszukiwania łączników i wyzwalaczy wpisz ciąg HTTP.

  2. Przewiń wyniki i wybierz pozycję Żądanie — po odebraniu żądania HTTP jako wyzwalacza.

    Select HTTP request trigger

  3. Wybierz polecenie Użyj ładunku próbnego, aby wygenerować schemat.

    Use sample payload

  4. Skopiuj poniższe wartości json i zastąp wartości <> symboli zastępczych własnymi.

  5. Wklej kod JSON schematuzdarzeń połączonego urządzenia do pola tekstowego, a następnie wybierz pozycję Gotowe:

      [{  
       "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"
     }]
    

    Ważne

    Pamiętaj, aby wkleić fragment kodu JSON do pola dostarczonego przez link Użyj przykładowego ładunku do wygenerowania linku schematu , a nie bezpośrednio w polu Schemat treści żądania JSON. Przykładowy link ładunku umożliwia generowanie zawartości JSON na podstawie fragmentu kodu JSON. Końcowy kod JSON, który znajduje się w treści żądania, różni się od fragmentu kodu JSON.

    To zdarzenie jest publikowane, gdy urządzenie jest połączone z centrum IoT Hub.

Uwaga

Może zostać wyświetlone wyskakujące powiadomienie z informacją Pamiętaj o dołączeniu nagłówka Content-Type ustawionego na wartość application/json w żądaniu. Możesz bezpiecznie zignorować tę sugestię i przejść do następnej sekcji.

Tworzenie akcji

Akcje to kroki, które są wykonywane, gdy wyzwalacz uruchomi przepływ pracy aplikacji logiki. W tym samouczku akcja polega na wysłaniu powiadomienia e-mail pochodzącego od dostawcy poczty e-mail.

  1. Wybierz pozycję Nowy krok. Zostanie wyświetlone okno z monitem o wybranie akcji.

  2. Wyszukaj pozycję Outlook.

  3. W oparciu o Twojego dostawcę poczty e-mail znajdź i wybierz zgodny łącznik. W tym samouczku jest używana Outlook.com. Kroki dla innych dostawców poczty e-mail są podobne. Alternatywnie użyj usługi Office 365 Outlook, aby pominąć krok logowania.

    Select email provider connector

  4. Wybierz akcję Wyślij wiadomość e-mail (wersja 2).

  5. Wybierz pozycję Zaloguj się i zaloguj się do swojego konta e-mail. Wybierz pozycję Tak , aby zezwolić aplikacji na dostęp do informacji.

  6. Utwórz szablon wiadomości e-mail.

    • Do: wpisz adres e-mail, na który mają być wysyłane wiadomości e-mail z powiadomieniami. Na potrzeby tego samouczka użyj konta e-mail, do którego masz dostęp, w celach testowych.

    • Temat: Wypełnij tekst tematu. Po kliknięciu pola tekstowego Temat możesz wybrać zawartość dynamiczną do dołączenia. Na przykład w tym samouczku jest używana wartość IoT Hub alert: {eventType}. Jeśli nie widzisz zawartości dynamicznej, wybierz hiperlink Dodaj zawartość dynamiczną, aby włączyć lub wyłączyć widok zawartości dynamicznej.

    Po wybraniu eventTypepozycji zobaczysz dane wyjściowe formularza e-mail do tej pory. Wybierz pozycję Wyślij i wyślij wiadomość e-mail (wersja 2), aby edytować treść wiadomości e-mail.

    Screenshot of the condensed body output form.

    • Treść: Napisz tekst wiadomości e-mail. Wybierz właściwości JSON przy użyciu narzędzia selektora, aby dodać zawartość dynamiczną na podstawie danych zdarzenia. Jeśli nie widzisz zawartości dynamicznej, wybierz hiperlink Dodaj zawartość dynamiczną poniżej pola tekstowego Treść. Jeśli nie widzisz tam pól, których potrzebujesz, kliknij pozycję więcej na ekranie zawartości dynamicznej, aby dodać pola z poprzedniego działania.

    Przykładowy szablon wiadomości e-mail może wyglądać następująco:

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

  7. W oknie Projektant aplikacji usługi Logic Apps wybierz pozycję Zapisz.

Kopiowanie adresu URL HTTP

Przed opuszczeniem Projektant usługi Logic Apps skopiuj adres URL, do którego aplikacja logiki nasłuchuje wyzwalacza. Ten adres URL zostanie użyty do skonfigurowania usługi Event Grid.

  1. Kliknij pole konfiguracji wyzwalacza Po odebraniu żądania HTTP, aby je rozwinąć.

  2. Skopiuj wartość pola Adres URL żądania HTTP POST, wybierając przycisk widoczny obok tego pola.

    Copy the HTTP POST URL

  3. Zapisz ten adres URL — zostanie użyty w następnej sekcji.

Konfigurowanie subskrypcji zdarzeń usługi IoT Hub

W tej sekcji skonfigurujesz usługę IoT Hub pod kątem publikowania zdarzeń na bieżąco.

  1. W witrynie Azure Portal przejdź do centrum IoT Hub. Centrum IoT Hub można znaleźć, wybierając pozycję IoT Hub z pulpitu nawigacyjnego platformy Azure, a następnie wybierz wystąpienie centrum IoT z listy zasobów.

  2. Wybierz pozycję Zdarzenia.

    Open the Event Grid details

  3. Wybierz pozycję Subskrypcja zdarzeń.

    Create new event subscription

  4. Utwórz subskrypcję zdarzeń, korzystając z następujących wartości:

    1. W sekcji SZCZEGÓŁY SUBSKRYPCJI ZDARZEŃ:

      1. Podaj nazwę subskrypcji zdarzeń.
      2. Wybierz pozycję Schemat usługi Event Grid dla schematu zdarzeń.
    2. W sekcji SZCZEGÓŁY TEMATU:

      1. Upewnij się, że ustawienie Typ tematu ma wartość Centrum IoT.
      2. Upewnij się, że nazwa centrum IoT jest ustawiona jako wartość pola Zasób źródłowy.
      3. Wprowadź nazwę tematu systemowego, który zostanie utworzony. Aby dowiedzieć się więcej o tematach systemowych, zobacz Omówienie tematów systemowych.
    3. W sekcji TYPY ZDARZEŃ:

      1. Wybierz listę rozwijaną Filtruj do typów zdarzeń.

      2. Usuń zaznaczenie pól wyboru Urządzenie utworzone i Usunięte urządzenie, pozostawiając zaznaczone pola wyboru Tylko pole wyboru Urządzenie Połączenie iOdłączone urządzenie.

        select subscription event types

    4. W sekcji SZCZEGÓŁY PUNKTU KOŃCOWEGO:

      1. Wybierz pozycję Typ punktu końcowego jako Element webhook.
      2. Kliknij pozycję wybierz punkt końcowy, wklej adres URL skopiowany z aplikacji logiki i potwierdź wybór.

      select endpoint url

      Po zakończeniu okienko powinno wyglądać tak, jak w poniższym przykładzie:

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

  5. Wybierz pozycję Utwórz.

Symulowanie nowego urządzenia łączącego się i wysyłającego dane telemetryczne

Przetestuj aplikację logiki, szybko symulując połączenie urządzenia przy użyciu interfejsu wiersza polecenia platformy Azure.

  1. Wybierz przycisk Cloud Shell, aby ponownie otworzyć terminal.

  2. Uruchom następujące polecenie, aby utworzyć tożsamość symulowanego urządzenia:

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

    Przetwarzanie może potrwać minutę. Po jego utworzeniu w konsoli zostanie wyświetlony wydruk JSON.

  3. Uruchom następujące polecenie, aby symulować łączenie urządzenia z usługą IoT Hub i wysyłanie danych telemetrycznych:

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  4. Gdy symulowane urządzenie łączy się z usługą IoT Hub, otrzymasz wiadomość e-mail z powiadomieniem o zdarzeniu "Urządzenie Połączenie ed".

  5. Po zakończeniu symulacji otrzymasz wiadomość e-mail z powiadomieniem o zdarzeniu "DeviceDisconnected".

    Screenshot of the email you should receive.

Czyszczenie zasobów

Użycie zasobów w tym samouczku powoduje naliczanie opłat w ramach Twojej subskrypcji platformy Azure. Gdy skończysz wypróbować samouczek i przetestować wyniki, wyłącz lub usuń zasoby, które nie chcesz zachować.

Aby usunąć wszystkie zasoby utworzone w tym samouczku, usuń grupę zasobów.

  1. Wybierz pozycję Grupy zasobów, a następnie wybierz grupę zasobów utworzoną na potrzeby tego samouczka.

  2. W okienku Grupa zasobów wybierz pozycję Usuń grupę zasobów. Zostanie wyświetlony monit o wprowadzenie nazwy grupy zasobów, a następnie możesz go usunąć. Wszystkie zawarte tam zasoby również zostaną usunięte.

Następne kroki

Aby uzyskać pełną listę obsługiwanych Łącznik aplikacji logiki, zobacz