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ę, która używa IoT Hub i Event Grid. Na końcu masz skonfigurowaną aplikację logiki Azure do wysyłania wiadomości e-mail z powiadomieniem za każdym razem, gdy urządzenie nawiąże połączenie lub odłączy się do centrum IoT. Event Grid może służyć do uzyskania czasowego powiadomienia o odłączeniu urządzeń krytycznych. Metryki i Diagnostyka mogą potrwać kilka (tj. 20 lub więcej — ale nie chcemy, aby w ciągu kilku minut było wyświetlane w dziennikach/alertach). Może to być nieakceptowalne dla infrastruktury krytycznej.

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

Wymagania wstępne

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

Tworzenie centrum IoT Hub

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

  1. Zaloguj się w witrynie Azure Portal.

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

    Przycisk Cloud Shell

  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:

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

Tworzenie aplikacji logiki

Następnie Utwórz aplikację logiki i Dodaj wyzwalacz usługi Event Grid protokołu HTTP, który przetwarza żądania z usługi IoT Hub.

Tworzenie zasobu aplikacji logiki

  1. W Azure Portalwybierz pozycję Utwórz zasób, a następnie w polu wyszukiwania wpisz ciąg "aplikacja logiki" i wybierz pozycję Zwróć. Wybierz pozycję aplikacja logiki z wyników.

    Tworzenie aplikacji logiki

  2. Na następnym ekranie wybierz pozycję Utwórz.

  3. Nadaj aplikacji logiki nazwę unikatową w ramach subskrypcji, a następnie wybierz tę samą subskrypcję, grupę zasobów i lokalizację, które są skojarzone z centrum IoT.

    Pola dla tworzenia aplikacji logiki

  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 projektancie Logic Apps strony wyświetlają się w dół, aby wyświetlić Szablony. Wybierz pozycję pusta aplikacja logiki , aby można było utworzyć aplikację logiki od podstaw.

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 żądanie — gdy żądanie HTTP zostanie odebrane jako wyzwalacz.

    Wybieranie wyzwalacza żądania HTTP

  3. Wybierz pozycję Użyj przykładowego ładunku do wygenerowania schematu.

    Użyj przykładowego ładunku

  4. Wklej kod JSON schematu zdarzenia połączonego z urządzeniem do pola tekstowego, a następnie wybierz pozycję gotowe:

      [{  
       "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
       "topic": "/SUBSCRIPTIONS/<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": "egtesthub1",
         "deviceId": "LogicAppTestDevice",
         "moduleId" : "DeviceModuleID"
       }, 
       "dataVersion": "1",
       "metadataVersion": "1"
     }]
    

    To zdarzenie służy do publikowania, gdy urządzenie jest połączone z usługą IoT Hub.

Uwaga

Może pojawić się wyskakujące powiadomienie Pamiętaj, aby w żądaniu uwzględnić nagłówek Content-Type ustawiony na wartość application/json. Można zignorować ten komunikat 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. Spowoduje to otwarcie okna umożliwiającego wybranie akcji.

  2. Wyszukaj w programie Outlook.

  3. W oparciu o Twojego dostawcę poczty e-mail znajdź i wybierz zgodny łącznik. Ten samouczek używa Outlook.com. Kroki dla innych dostawców poczty e-mail są podobne.

    Wybieranie łącznika dostawcy poczty e-mail

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

  5. Wybierz pozycję Zaloguj się i zaloguj się na swoim koncie e-mail. Wybierz pozycję tak , aby zezwolić aplikacji na dostęp do informacji.

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

    • Do: Wprowadź 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: Wpisz tekst tematu. Po kliknięciu pola tekstowego temat możesz wybrać zawartość dynamiczną do uwzględnienia. Na przykład w tym samouczku używamy IoT Hub alert: {eventType} . Jeśli nie widzisz zawartości dynamicznej, zaznacz hiperlink Dodawanie zawartości dynamicznej — spowoduje to włączenie i wyłączenie tej opcji.

    • Treść: Wpisz 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 zawartość dynamiczna nie jest widoczna, zaznacz hiperlink Dodaj zawartość dynamiczną poniżej pola tekstowego treść . Jeśli nie pokazywane są odpowiednie pola, kliknij przycisk więcej na ekranie zawartości dynamicznej, aby uwzględnić pola z poprzedniej akcji.

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

    Wpisywanie informacji dotyczących wiadomości e-mail.

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

Kopiowanie adresu URL HTTP

Przed zamknięciem projektanta aplikacji usługi Logic Apps skopiuj adres URL, za pomocą którego aplikacja logiki odbiera wyzwalacz. 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.

    Kopiowanie adresu URL żądania HTTP POST

  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. Możesz to zrobić, wybierając pozycję grupy zasobów, a następnie wybierz grupę zasobów dla tego samouczka, a następnie wybierz z listy zasobów Centrum IoT Hub.

  2. Wybierz pozycję Zdarzenia.

    Wyświetlanie szczegółów usługi Event Grid

  3. Wybierz pozycję Subskrypcja zdarzeń.

    Tworzenie nowej subskrypcji zdarzeń

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

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

      1. Podaj nazwę subskrypcji zdarzenia.
      2. Wybierz schemat zdarzeń Event Grid dla schematu zdarzenia.
    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 na temat tematów 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 utworzone urządzenie i usunięte urządzenia , pozostawiając wybrane pola wyboru tylko połączone urządzenie i rozłączone urządzenie .

        Wybieranie typów zdarzeń w subskrypcji

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

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

      wybieranie adresu url punktu końcowego

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

      Przykładowy formularz subskrypcji zdarzeń

  5. Wybierz przycisk Utwórz.

Symuluj nowe urządzenie łączące i wysyłające dane telemetryczne

Przetestuj aplikację logiki, szybko symulując połączenie z urządzeniem 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ć symulowaną tożsamość urządzenia:

    az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
    
  3. Uruchom następujące polecenie, aby symulować połączenie urządzenia z IoT Hub i wysyłanie danych telemetrycznych:

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  4. Gdy symulowane urządzenie zostanie połączone z IoT Hub, otrzymasz wiadomość e-mail z powiadomieniem o zdarzeniu "DeviceConnected".

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

    Przykład wiadomości e-mail dotyczącej alertu

Czyszczenie zasobów

Użycie zasobów w tym samouczku powoduje naliczanie opłat w ramach Twojej subskrypcji platformy Azure. Po zakończeniu próby wykonania samouczka i przetestowaniu wyników należy wyłączyć lub usunąć zasoby, które nie mają być zachowywane.

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ą dla 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żna ją usunąć. Wszystkie zawarte w niej zasoby również zostaną usunięte.

Następne kroki

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