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.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Tworzenie centrum IoT
Nowe centrum IoT można szybko utworzyć przy użyciu terminalu usługi Azure Cloud Shell w portalu.
Zaloguj się w witrynie Azure Portal.
W prawym górnym rogu strony wybierz przycisk Cloud Shell.
Uruchom poniższe polecenie, aby utworzyć nową grupę zasobów:
az group create --name {your resource group name} --location westus
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
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
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.
Na następnym ekranie kliknij opcję Utwórz.
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.
Wybierz pozycję Przejrzyj i utwórz.
Sprawdź ustawienia, a następnie wybierz pozycję Utwórz.
Po utworzeniu zasobu wybierz pozycję Przejdź do zasobu.
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.
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.
Na pasku wyszukiwania łączników i wyzwalaczy wpisz ciąg HTTP.
Przewiń wyniki i wybierz pozycję Żądanie — po odebraniu żądania HTTP jako wyzwalacza.
Wybierz polecenie Użyj ładunku próbnego, aby wygenerować schemat.
Skopiuj poniższe wartości
json
i zastąp wartości<>
symboli zastępczych własnymi.Wklej kod JSON schematu zdarzeń 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.
Wybierz pozycję Nowy krok. Zostanie wyświetlone okno z monitem o wybranie akcji.
Wyszukaj pozycję Outlook.
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.
Wybierz akcję Wyślij wiadomość e-mail (wersja 2).
Wybierz pozycję Zaloguj się i zaloguj się do swojego konta e-mail. Wybierz pozycję Tak , aby zezwolić aplikacji na dostęp do informacji.
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
eventType
pozycji 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.- 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:
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.
Kliknij pole konfiguracji wyzwalacza Po odebraniu żądania HTTP, aby je rozwinąć.
Skopiuj wartość pola Adres URL żądania HTTP POST, wybierając przycisk widoczny obok tego pola.
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.
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.
Wybierz pozycję Zdarzenia.
Wybierz pozycję Subskrypcja zdarzeń.
Utwórz subskrypcję zdarzeń, korzystając z następujących wartości:
W sekcji SZCZEGÓŁY SUBSKRYPCJI ZDARZEŃ:
- Podaj nazwę subskrypcji zdarzeń.
- Wybierz pozycję Schemat usługi Event Grid dla schematu zdarzeń.
W sekcji SZCZEGÓŁY TEMATU:
- Upewnij się, że ustawienie Typ tematu ma wartość Centrum IoT.
- Upewnij się, że nazwa centrum IoT jest ustawiona jako wartość pola Zasób źródłowy.
- Wprowadź nazwę tematu systemowego, który zostanie utworzony. Aby dowiedzieć się więcej o tematach systemowych, zobacz Omówienie tematów systemowych.
W sekcji TYPY ZDARZEŃ:
Wybierz listę rozwijaną Filtruj do typów zdarzeń.
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 i Odłączone urządzenie.
W sekcji SZCZEGÓŁY PUNKTU KOŃCOWEGO:
- Wybierz pozycję Typ punktu końcowego jako Element webhook.
- Kliknij pozycję wybierz punkt końcowy, wklej adres URL skopiowany z aplikacji logiki i potwierdź wybór.
Po zakończeniu okienko powinno wyglądać tak, jak w poniższym przykładzie:
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.
Wybierz przycisk Cloud Shell, aby ponownie otworzyć terminal.
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.
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}
Gdy symulowane urządzenie łączy się z usługą IoT Hub, otrzymasz wiadomość e-mail z powiadomieniem o zdarzeniu "Urządzenie Połączenie ed".
Po zakończeniu symulacji otrzymasz wiadomość e-mail z powiadomieniem o zdarzeniu "DeviceDisconnected".
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.
Wybierz pozycję Grupy zasobów, a następnie wybierz grupę zasobów utworzoną na potrzeby tego samouczka.
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
- Dowiedz się więcej — zobacz Reacting to IoT Hub events by using Event Grid to trigger actions (Reagowanie na zdarzenia usługi IoT Hub przez wyzwalanie akcji za pomocą usługi Event Grid).
- Dowiedz się, jak porządkować zdarzenia podłączania i odłączania urządzeń
- Dowiedz się, co jeszcze możesz robić przy użyciu usługi Event Grid.
Aby uzyskać pełną listę obsługiwanych Łącznik aplikacji logiki, zobacz