Samouczek: monitorowanie urządzeń IoT i wysyłanie powiadomień za pomocą usługi Azure Logic Apps

Usługa Azure Logic Apps umożliwia monitorowanie danych telemetrycznych przychodzących urządzeń z usługi IoT Hub i wysyłanie powiadomień po wyzwoleniu alertów.

End-to-end diagram

Usługa Azure Logic Apps ułatwia organizowanie przepływów pracy między usługami lokalnymi i w chmurze, wieloma przedsiębiorstwami i różnymi protokołami. Aplikacja logiki zaczyna się od wyzwalacza, po którym następuje co najmniej jedna akcja, którą można sekwencjonować przy użyciu wbudowanych kontrolek, takich jak warunki i iteratory. Ta elastyczność sprawia, że usługa Logic Apps jest idealnym rozwiązaniem IoT dla scenariuszy monitorowania IoT. Na przykład przybycie danych z urządzenia w punkcie końcowym usługi IoT Hub może zainicjować przepływy pracy aplikacji logiki do przechowywania danych w obiekcie blob usługi Azure Storage, wysyłać alerty e-mail, aby ostrzegać o anomaliach danych, zaplanować wizytę technika, jeśli urządzenie zgłosi awarię itd.

Ten samouczek obejmuje wykonanie następujących zadań:

Utwórz kolejkę usługi Service Bus. Utwórz trasę w centrum IoT, która wysyła komunikaty do kolejki usługi Service Bus, jeśli komunikaty zawierają nietypowe odczyty temperatury. Utwórz aplikację logiki, która obserwuje komunikaty przychodzące do kolejki i wysyła alert e-mail.

Kod klienta uruchomiony na urządzeniu ustawia właściwość aplikacji , temperatureAlertna każdym komunikacie telemetrii wysyłanym do centrum IoT. Gdy kod klienta wykryje temperaturę powyżej danego progu, ustawia tę właściwość na true; w przeciwnym razie ustawia właściwość na falsewartość .

Komunikaty przychodzące do centrum IoT Hub wyglądają podobnie do następujących, a dane telemetryczne zawarte w treści i temperatureAlert właściwość zawarta we właściwościach aplikacji (właściwości systemowe nie są wyświetlane):

{
  "body": {
    "messageId": 18,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 27.796111770668457,
    "humidity": 66.77637926438427
  },
  "applicationProperties": {
    "temperatureAlert": "false"
  }
}

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

Wymagania wstępne

Przed rozpoczęciem tego samouczka przygotuj następujące wymagania wstępne.

Tworzenie przestrzeni nazw i kolejki usługi Service Bus

Utwórz przestrzeń nazw i kolejkę usługi Service Bus. W dalszej części tego artykułu utworzysz regułę routingu w centrum IoT, aby kierować komunikaty zawierające alert temperatury do kolejki usługi Service Bus. Aplikacja logiki monitoruje kolejkę dla komunikatów przychodzących i wysyła powiadomienie dla każdego alertu.

Tworzenie przestrzeni nazw usługi Service Bus

  1. W witrynie Azure Portal użyj paska wyszukiwania, aby wyszukać i wybrać usługę Service Bus.

  2. Wybierz pozycję Utwórz , aby utworzyć przestrzeń nazw usługi Service Bus.

  3. W okienku Tworzenie przestrzeni nazw podaj następujące informacje:

    Parametr Wartość
    Subskrypcja Wybierz tę samą subskrypcję, która zawiera centrum IoT Hub.
    Grupa zasobów: Wybierz tę samą grupę zasobów, która zawiera centrum IoT Hub.
    Nazwa przestrzeni nazw Podaj nazwę przestrzeni nazw usługi Service Bus. Przestrzeń nazw musi być unikatowa na platformie Azure.
    Lokalizacja Wybierz tę samą lokalizację, która jest używana przez centrum IoT.
    Warstwa cenowa Z listy rozwijanej wybierz pozycję Podstawowa . Warstwa Podstawowa jest wystarczająca na potrzeby tego samouczka.
  4. Wybierz pozycję Przejrzyj i utwórz.

  5. Wybierz pozycję Utwórz.

  6. Poczekaj na zakończenie wdrożenia, a następnie wybierz pozycję Przejdź do zasobu.

Dodawanie kolejki usługi Service Bus do przestrzeni nazw

  1. Na stronie Przegląd przestrzeni nazw usługi Service Bus wybierz pozycję Kolejka.

    Screenshot of the namespace overview page to add a queue.

  2. W polu Nazwa podaj nazwę kolejki. Zaakceptuj wartości domyślne dla innych pól i wybierz pozycję Utwórz.

  3. W przestrzeni nazw usługi Service Bus wybierz pozycję Zasady dostępu współdzielonego w sekcji Ustawienia menu zasobów.

  4. Wybierz zasady RootManageSharedAccessKey, aby otworzyć jego szczegóły.

  5. Skopiuj wartość podstawowego parametry połączenia i zapisz ją, aby użyć jej w dalszej części tego samouczka podczas konfigurowania aplikacji logiki.

Dodawanie niestandardowego punktu końcowego i reguły routingu do centrum IoT Hub

Dodaj niestandardowy punkt końcowy kolejki usługi Service Bus do centrum IoT. Następnie utwórz regułę rozsyłania komunikatów, aby kierować komunikaty zawierające alert temperatury do tego punktu końcowego, w którym są pobierane przez aplikację logiki. Reguła routingu używa zapytania routingu , temperatureAlert = "true"do przekazywania komunikatów na podstawie wartości temperatureAlert właściwości aplikacji ustawionej przez kod klienta uruchomiony na urządzeniu. Aby dowiedzieć się więcej, zobacz Zapytanie dotyczące routingu komunikatów na podstawie właściwości komunikatów.

Dodawanie niestandardowego punktu końcowego i trasy

  1. W witrynie Azure Portal przejdź do centrum IoT Hub.

  2. W menu zasobów w obszarze Ustawienia centrum wybierz pozycję Routing komunikatów , a następnie wybierz pozycję Dodaj.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

  3. Na karcie Punkt końcowy utwórz punkt końcowy dla kolejki usługi Service Bus, podając następujące informacje:

    Parametr Wartość
    Typ punktu końcowego Wybierz pozycję Kolejka usługi Service Bus.
    Nazwa punktu końcowego Podaj nazwę nowego punktu końcowego mapowania na kolejkę usługi Service Bus.
    Przestrzeń nazw usługi Service Bus Użyj menu rozwijanego, aby wybrać przestrzeń nazw usługi Service Bus utworzoną w poprzedniej sekcji.
    Kolejka usługi Service Bus Użyj menu rozwijanego, aby wybrać kolejkę usługi Service Bus utworzoną w przestrzeni nazw.

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. Wybierz pozycję Utwórz i dalej.

  5. Na karcie Trasa wprowadź następujące informacje, aby utworzyć trasę wskazującą punkt końcowy kolejki usługi Service Bus:

    Parametr Wartość
    Nazwa/nazwisko Podaj unikatową nazwę trasy.
    Źródło danych Zachowaj domyślne źródło danych komunikatu telemetrycznego urządzenia.
    Zapytanie dotyczące routingu Wprowadź temperatureAlert = "true" jako ciąg zapytania.

    Screenshot that shows adding a route with a query.

  6. Wybierz pozycję Utwórz i pomiń wzbogacania.

Konfigurowanie usługi Logic Apps na potrzeby powiadomień

W poprzedniej sekcji skonfigurujesz centrum IoT w celu kierowania komunikatów zawierających alert temperatury do kolejki usługi Service Bus. Teraz skonfigurujesz aplikację logiki do monitorowania kolejki usługi Service Bus i wysyłasz powiadomienie e-mail za każdym razem, gdy wiadomość zostanie dodana do kolejki.

Tworzenie aplikacji logiki

  1. W witrynie Azure Portal wyszukaj i wybierz pozycję Logic Apps.

  2. Wybierz pozycję Dodaj , aby utworzyć nową aplikację logiki.

  3. Wprowadź następujące informacje na karcie Podstawy tworzenia aplikacji logiki:

    Parametr Wartość
    Grupa zasobów: Wybierz tę samą grupę zasobów, która zawiera centrum IoT Hub.
    Nazwa/nazwisko Podaj nazwę aplikacji logiki.
    Region Wybierz blisko siebie lokalizację.
    Typ planu Wybierz pozycję Zużycie, które jest wystarczające na potrzeby tego samouczka.

    Screenshot that shows creating a logic app in the Azure portal.

  4. Wybierz pozycję Przejrzyj i utwórz.

  5. Wybierz pozycję Utwórz.

  6. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , aby otworzyć aplikację logiki.

Konfigurowanie wyzwalacza aplikacji logiki

  1. Na stronie zasobu aplikacji logiki w witrynie Azure Portal otwórz projektanta aplikacji logiki w sekcji Narzędzia programistyczne w menu zasobów.

  2. W projektancie przewiń w dół do pozycji Szablony i wybierz pozycję Pusta aplikacja logiki.

    Screenshot that shows selecting the Blank Logic App template.

  3. Wybierz kartę Wszystkie , aby wyświetlić wszystkie łączniki i wyzwalacze, a następnie wybierz pozycję Service Bus.

    Select Service Bus to start creating your logic app in the Azure portal.

  4. W obszarze Wyzwalacze wybierz pozycję Gdy co najmniej jeden komunikat dociera do kolejki (autouzupełnij).

    Select the trigger for your logic app in the Azure portal.

  5. Utwórz połączenie usługi Service Bus.

    1. Podaj nazwę Połączenie ion, a następnie wklej ciąg Połączenie ion skopiowany z przestrzeni nazw usługi Service Bus.

    2. Wybierz pozycję Utwórz.

    3. Na następnym ekranie użyj menu rozwijanego, aby wybrać kolejkę utworzoną w przestrzeni nazw usługi Service Bus. Następnie wprowadź wartość w polu 175Maksymalna liczba komunikatów.

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. Wybierz pozycję Zapisz w menu projektanta aplikacji logiki, aby zapisać zmiany.

Konfigurowanie akcji aplikacji logiki

  1. Wybierz pozycję Nowy krok w projektancie aplikacji logiki.

  2. Utwórz połączenie usługi SMTP.

    1. Wyszukaj i wybierz pozycję SMTP.

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. Wybierz pozycję Wyślij wiadomość e-mail (wersja 3) jako akcję dla tego kroku.

    3. Podaj nazwę Połączenie ion, a następnie wypełnij pozostałe pola informacjami SMTP dla konta e-mail, którego chcesz użyć do wysyłania wiadomości z powiadomieniem.

      Skorzystaj z poniższych linków, aby znaleźć informacje SMTP w zależności od dostawcy poczty:

      Uwaga

      Może być konieczne wyłączenie protokołu TLS/SSL w celu nawiązania połączenia. Jeśli tak jest i chcesz ponownie włączyć protokół TLS po nawiązaniu połączenia, zobacz opcjonalny krok na końcu tej sekcji.

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. Wybierz pozycję Utwórz.

  3. Skonfiguruj akcję Wyślij wiadomość e-mail.

    1. Z listy rozwijanej Dodaj nowy parametr w kroku Wyślij wiadomość e-mail wybierz następujące parametry:

      • Od
      • Do
      • Temat
      • Treść

      Kliknij lub naciśnij dowolne miejsce na ekranie, aby zamknąć pole wyboru.

      Choose SMTP connection email fields to include in email.

    2. Wprowadź następujące informacje dotyczące parametrów poczty e-mail wybranych w poprzednim kroku:

      Parametr Wartość
      Od Adres e-mail skonfigurowany dla połączenia SMTP.
      Do Adres e-mail lub adresy, na których chcesz wysyłać wiadomości e-mail z powiadomieniami.
      Temat High temperature detected.
      Treść High temperature detected.

      Jeśli zostanie otwarte okno dialogowe Dodawanie zawartości dynamicznej, wybierz pozycję Ukryj, aby go zamknąć. W tym samouczku nie używasz zawartości dynamicznej.

      Provide details for SMTP connection email fields.

  4. Wybierz pozycję Zapisz , aby zapisać połączenie SMTP.

  5. (Opcjonalnie) Jeśli konieczne było wyłączenie protokołu TLS w celu nawiązania połączenia z dostawcą poczty e-mail i ponowne włączenie go, wykonaj następujące kroki:

    1. W okienku Aplikacja logiki w obszarze Narzędzia programistyczne wybierz pozycję Połączenia interfejsu API.

    2. Z listy połączeń interfejsu API wybierz połączenie SMTP.

    3. W okienku Połączenie interfejsu API smtp w obszarze Ogólne wybierz pozycję Edytuj połączenie interfejsu API.

    4. W okienku Edytowanie Połączenie interfejsu API wybierz pozycję Włącz protokół SSL?, wprowadź ponownie hasło dla konta e-mail i wybierz pozycję Zapisz.

      Edit SMTP API connection in your logic app in the Azure portal.

Aplikacja logiki jest teraz gotowa do przetwarzania alertów dotyczących temperatury z kolejki usługi Service Bus i wysyłania powiadomień do konta e-mail.

Testowanie aplikacji logicznej

Rozpocznij wysyłanie komunikatów o temperaturze z urządzenia IoT, aby przetestować potok monitorowania i powiadomień.

  1. Uruchom aplikację kliencą na urządzeniu. Kod klienta losowo generuje komunikaty telemetryczne i ustawia temperatureAlert właściwość na true wartość, gdy temperatura przekracza 30 C.

  2. Należy zacząć otrzymywać powiadomienia e-mail wysyłane przez aplikację logiki.

    Uwaga

    Dostawca usługi poczty e-mail może wymagać zweryfikowania tożsamości nadawcy, aby upewnić się, że jest to użytkownik, który wysyła wiadomość e-mail.

Czyszczenie zasobów

Jeśli nie potrzebujesz już zasobów utworzonych w tym samouczku, usuń ją i grupę zasobów w portalu. W tym celu wybierz grupę zasobów zawierającą centrum IoT, a następnie wybierz pozycję Usuń.

Alternatywnie możesz użyć interfejsu wiersza polecenia:

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

Następne kroki

W tym samouczku utworzono aplikację logiki, która łączy centrum IoT Hub i skrzynkę pocztową na potrzeby monitorowania temperatury i powiadomień.

Aby kontynuować pracę z usługą Azure IoT Hub i zapoznać się ze wszystkimi rozszerzonymi scenariuszami IoT, zobacz następujące tematy: