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.
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 , temperatureAlert
na 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 false
wartość .
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.
Aktywna subskrypcja platformy Azure.
Centrum IoT w ramach subskrypcji.
Aplikacja kliencka, która wysyła dane temperatury do centrum Azure IoT Hub. Ten samouczek filtruje komunikaty urządzenie-chmura na podstawie właściwości komunikatu o nazwie
temperatureAlert
. Oto niektóre przykłady, które generują komunikaty z tą właściwością:- .NET SDK: SimulatedDevice
- Zestaw JAVA SDK: send-event
- zestaw SDK Node.js: simple_sample_device
- Zestaw SDK języka C: iothub_II_client_shared_sample
- Bez kodu: symulator online urządzenia Raspberry Pi
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
W witrynie Azure Portal użyj paska wyszukiwania, aby wyszukać i wybrać usługę Service Bus.
Wybierz pozycję Utwórz , aby utworzyć przestrzeń nazw usługi Service Bus.
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. Wybierz pozycję Przejrzyj i utwórz.
Wybierz pozycję Utwórz.
Poczekaj na zakończenie wdrożenia, a następnie wybierz pozycję Przejdź do zasobu.
Dodawanie kolejki usługi Service Bus do przestrzeni nazw
Na stronie Przegląd przestrzeni nazw usługi Service Bus wybierz pozycję Kolejka.
W polu Nazwa podaj nazwę kolejki. Zaakceptuj wartości domyślne dla innych pól i wybierz pozycję Utwórz.
W przestrzeni nazw usługi Service Bus wybierz pozycję Zasady dostępu współdzielonego w sekcji Ustawienia menu zasobów.
Wybierz zasady RootManageSharedAccessKey, aby otworzyć jego szczegóły.
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
W witrynie Azure Portal przejdź do centrum IoT Hub.
W menu zasobów w obszarze Ustawienia centrum wybierz pozycję Routing komunikatów , a następnie wybierz pozycję Dodaj.
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. Wybierz pozycję Utwórz i dalej.
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.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
W witrynie Azure Portal wyszukaj i wybierz pozycję Logic Apps.
Wybierz pozycję Dodaj , aby utworzyć nową aplikację logiki.
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. Wybierz pozycję Przejrzyj i utwórz.
Wybierz pozycję Utwórz.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , aby otworzyć aplikację logiki.
Konfigurowanie wyzwalacza aplikacji logiki
Na stronie zasobu aplikacji logiki w witrynie Azure Portal otwórz projektanta aplikacji logiki w sekcji Narzędzia programistyczne w menu zasobów.
W projektancie przewiń w dół do pozycji Szablony i wybierz pozycję Pusta aplikacja logiki.
Wybierz kartę Wszystkie , aby wyświetlić wszystkie łączniki i wyzwalacze, a następnie wybierz pozycję Service Bus.
W obszarze Wyzwalacze wybierz pozycję Gdy co najmniej jeden komunikat dociera do kolejki (autouzupełnij).
Utwórz połączenie usługi Service Bus.
Podaj nazwę Połączenie ion, a następnie wklej ciąg Połączenie ion skopiowany z przestrzeni nazw usługi Service Bus.
Wybierz pozycję Utwórz.
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
175
Maksymalna liczba komunikatów.
Wybierz pozycję Zapisz w menu projektanta aplikacji logiki, aby zapisać zmiany.
Konfigurowanie akcji aplikacji logiki
Wybierz pozycję Nowy krok w projektancie aplikacji logiki.
Utwórz połączenie usługi SMTP.
Wyszukaj i wybierz pozycję SMTP.
Wybierz pozycję Wyślij wiadomość e-mail (wersja 3) jako akcję dla tego kroku.
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.
Wybierz pozycję Utwórz.
Skonfiguruj akcję Wyślij wiadomość e-mail.
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.
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.
Wybierz pozycję Zapisz , aby zapisać połączenie SMTP.
(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:
W okienku Aplikacja logiki w obszarze Narzędzia programistyczne wybierz pozycję Połączenia interfejsu API.
Z listy połączeń interfejsu API wybierz połączenie SMTP.
W okienku Połączenie interfejsu API smtp w obszarze Ogólne wybierz pozycję Edytuj połączenie interfejsu API.
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.
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ń.
Uruchom aplikację kliencą na urządzeniu. Kod klienta losowo generuje komunikaty telemetryczne i ustawia
temperatureAlert
właściwość natrue
wartość, gdy temperatura przekracza 30 C.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:
Zarządzanie urządzeniami za pomocą rozszerzenia usługi Azure IoT Hub dla programu Visual Studio Code
Wizualizowanie danych z czujników w czasie rzeczywistym z centrum IoT Hub za pomocą usługi Power BI
Wizualizowanie danych czujników w czasie rzeczywistym z centrum IoT Za pomocą aplikacji internetowej
Używanie usługi Logic Apps do zdalnego monitorowania i powiadomień