Udostępnij za pośrednictwem


Porządkowanie zdarzeń połączenia urządzenia pochodzących z usługi Azure IoT Hub przy użyciu usługi Azure Cosmos DB

Usługa Azure Event Grid ułatwia tworzenie aplikacji opartych na zdarzeniach i łatwe integrowanie zdarzeń IoT w rozwiązaniach biznesowych. W tym artykule opisano konfigurację przy użyciu usługi Cosmos DB, aplikacji logiki, zdarzeń usługi IoT Hub oraz symulowanego urządzenia Raspberry Pi w celu zbierania i przechowywania zdarzeń połączenia i rozłączenia urządzenia.

Od momentu uruchomienia urządzenia kolejność operacji zostanie aktywowana:

  1. Urządzenie Pi przy użyciu klucza urządzenia usługi IoT Hub jest uruchomione, a następnie zatrzymane

  2. Zdarzenie usługi IoT Hub przechwytuje działanie urządzenia, a następnie wysyła żądanie HTTP do aplikacji logiki

  3. Aplikacja logiki przetwarza żądanie HTTP na podstawie ustawionego warunku

  4. Aplikacja logiki rejestruje zdarzenia połączenia lub rozłączania do nowego dokumentu w usłudze Cosmos DB

    Zrzut ekranu przedstawiający konfigurację, która zostanie utworzona dla tego artykułu. Ta konfiguracja pokazuje, jak wszystkie usługi i urządzenia są połączone.

Wymagania wstępne

  • Aktywne konto usługi Azure Cosmos DB for NoSQL. Jeśli jeszcze go nie utworzono, zobacz Tworzenie konta bazy danych, aby zapoznać się z przewodnikiem.

  • Kolekcja w bazie danych. Zobacz Dodawanie kolekcji , aby zapoznać się z przewodnikiem. Podczas tworzenia kolekcji użyj klucza /id partycji.

  • Subskrypcja Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz je bezpłatnie .

  • Centrum IoT w ramach subskrypcji platformy Azure. Jeśli nie masz jeszcze centrum, możesz wykonać kroki opisane w temacie Tworzenie centrum IoT Hub.

Tworzenie aplikacji logiki

Utwórzmy aplikację logiki i dodajmy wyzwalacz usługi Event Grid, który monitoruje grupę zasobów dla maszyny wirtualnej.

Tworzenie zasobu aplikacji logiki

  1. W witrynie Azure Portal wybierz pozycję +Utwórz zasób, wybierz pozycję Integracja, a następnie pozycję Aplikacja logiki.

    Zrzut ekranu przedstawiający znajdowanie i wybieranie aplikacji logiki w witrynie Azure Portal.

  2. Wypełnij formularz, aby utworzyć nową aplikację logiki obejmującą następujące elementy:

    • Twoja subskrypcja

    • Grupa zasobów (lub utwórz nową)

    • Nazwa aplikacji logiki unikatowa w subskrypcji

    • Region centrum IoT

    • Nie do włączania analizy dzienników

    • Typ planu Zużycie

      Uwaga

      Typ planu Zużycie to opcja, która włącza projektanta aplikacji logiki w interfejsie użytkownika. Jeśli wybierzesz opcję Standardowa (wartość domyślna), musisz utworzyć nowy przepływ pracy, aby projektant aplikacji logiki stał się dostępny.

    Zrzut ekranu przedstawiający sposób tworzenia aplikacji logiki w witrynie Azure Portal.

  3. Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć konfigurację, a następnie wybierz pozycję Utwórz , aby utworzyć aplikację logiki.

  4. Teraz został utworzony zasób platformy Azure dla Twojej aplikacji logiki. Po wdrożeniu aplikacji logiki przez platformę Azure wybierz pozycję Przejdź do zasobu. Projektant aplikacji logiki przedstawia szablony dla typowych wzorców, dzięki czemu możesz rozpocząć pracę szybciej.

  5. W projektancie aplikacji logiki przewiń do sekcji Szablony, a następnie 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.

  1. Na pasku wyszukiwania łączników i wyzwalaczy wpisz HTTP i naciśnij Enter.

  2. Wybierz żądanie Po odebraniu żądania HTTP jako wyzwalacza.

    Zrzut ekranu przedstawiający sposób znajdowania wyzwalacza żądania HTTP.

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

    Zrzut ekranu przedstawiający sposób użycia przykładowego ładunku do wygenerowania schematu.

  4. Wklej następujący przykładowy kod JSON w polu tekstowym, a następnie wybierz pozycję Gotowe.

    Ten kod JSON jest używany tylko jako szablon, więc dokładne wartości nie są ważne.

    [{
     "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd",
     "topic":
       "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB",
     "subject": "devices/Demo-Device-1",
     "eventType": "Microsoft.Devices.DeviceConnected",
     "eventTime": "2018-07-03T23:20:11.6921933+00:00",
     "data": {
       "deviceConnectionStateEventInfo": {
         "sequenceNumber":
           "000000000000000001D4132452F67CE200000002000000000000000000000001"
       },
       "hubName": "MYIOTHUB",
       "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e",
       "moduleId": ""
     },
     "dataVersion": "1",
     "metadataVersion": "1"
    }]
    

    Zrzut ekranu przedstawiający przykładowy ładunek JSON wklejony do pola tekstowego na platformie Azure.

Tworzenie warunku

Warunki ułatwiają uruchamianie określonych akcji po przekazaniu tego określonego warunku. W tym artykule warunek polega na sprawdzeniu, czy typ zdarzenia jest połączony z urządzeniem lub czy urządzenie zostało odłączone. Akcja wykonywana, gdy parametr eventType ma wartość true, to utworzenie dokumentu w usłudze Azure Cosmos DB. Ten warunek jest tworzony w projektancie aplikacji logiki.

  1. Wybierz pozycję + Nowy krok, a następnie kartę Wbudowana , a następnie znajdź i wybierz kontrolkę o nazwie Warunek.

  2. W twoim warunku zmień wartość And na Or, ponieważ chcemy przechwycić zdarzenia połączenia lub zdarzenia rozłączenia w pojedynczej przeanalizować.

  3. Wybierz wewnątrz pola Wybierz wartość , a zostanie wyświetlone wyskakujące okienko z zawartością dynamiczną — pola, które można wybrać.

    • Wybierz typ zdarzenia. Okno podręczne zostanie zamknięte i zobaczysz, że w obszarze Wybierz dane wyjściowe z poprzednich kroków zostanie automatycznie umieszczone treść. Wybierz pozycję Warunek , aby ponownie otworzyć instrukcję warunkową.

    • Zachowaj wartość jest równa wartości.

    • Wpisz wartość Microsoft.Devices.DeviceConnected jako ostatnią wartość tego wiersza.

    • Wybierz pozycję + Dodaj , aby dodać kolejny wiersz.

    • Ten drugi wiersz jest podobny do pierwszego wiersza, z wyjątkiem wyszukiwania zdarzeń rozłączenia.

      Użyj wartości eventType, jest równe i Microsoft.Devices.DeviceDisconnected dla wartości wierszy.

      Zrzut ekranu przedstawiający pełny warunek dla każdego warunku.

  4. W oknie dialogowym if true kliknij pozycję Dodaj akcję.

    Zrzut ekranu przedstawiający pole

  5. Wyszukaj usługę Cosmos DB i wybierz pozycję Azure Cosmos DB — tworzenie lub aktualizowanie dokumentu (wersja 3)

    Zrzut ekranu przedstawiający wyszukiwanie usługi Azure Cosmos DB.

  6. Zostanie wyświetlony panel Tworzenie lub aktualizowanie dokumentu (wersja 3). Wprowadź następujące wartości dla pól:

    Nazwa konta usługi Azure Cosmos DB: {Dodaj nazwę konta}

    Identyfikator bazy danych: ToDoList

    Identyfikator kolekcji: elementy

    Dokument: wybierz Current item z listy parametrów zawartości dynamicznej

    Zrzut ekranu przedstawia element Wykonaj procedurę składowaną (V3) z wybraną pozycją

  7. Zapisz aplikację logiki.

Kopiowanie adresu URL HTTP

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

  1. Rozwiń pole Konfiguracja wyzwalacza Po odebraniu żądania HTTP, wybierając je.

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

    Zrzut ekranu przedstawiający miejsce znalezienia adresu URL HTTP do skopiowania.

  3. Zapisz ten adres URL, aby można było go użyć 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.

  2. Wybierz pozycję Zdarzenia.

    Zrzut ekranu przedstawiający lokalizację przycisku Zdarzenia w menu usługi IoT Hub.

  3. Wybierz pozycję + Subskrypcja zdarzeń.

    Tworzenie nowej subskrypcji zdarzeń

  4. Wypełnij szczegóły subskrypcji zdarzeń: podaj opisową nazwę i wybierz pozycję Schemat usługi Event Grid jako schemat zdarzenia.

  5. Utwórz nazwę tematu systemu dla zasobu centrum IoT Hub.

  6. Wypełnij pola Typy zdarzeń. Z listy rozwijanej wybierz pozycję Tylko urządzenie Połączone i Odłączone urządzenie z menu. Kliknij gdziekolwiek indziej na ekranie, aby zamknąć listę i zapisać wybrane opcje.

    Ustawianie typów zdarzeń do wyszukania

  7. W obszarze Szczegóły punktu końcowego wybierz pozycję Typ punktu końcowego jako element Web Hook , a następnie kliknij pozycję Wybierz punkt końcowy i wklej adres URL skopiowany z aplikacji logiki i potwierdź wybór.

    Wybieranie adresu URL punktu końcowego

  8. Formularz powinien teraz wyglądać podobnie do poniższego przykładu:

    Zrzut ekranu przedstawiający formularz umożliwiający utworzenie subskrypcji zdarzeń.

    Wybierz pozycję Utwórz, aby zapisać subskrypcję zdarzeń.

    Ważne

    Poczekaj kilka minut na przetworzenie zdarzenia przed uruchomieniem urządzenia. Za każdym razem, gdy usługi platformy Azure zostaną utworzone lub zmienione, zainicjowanie następnego kroku potoku zbyt szybko może spowodować niepotrzebne błędy. Jeśli na przykład centrum IoT nie jest w stanie aktywnym, nie będzie gotowe do odbierania zdarzeń. Sprawdź stronę przeglądu centrum IoT Hub, aby sprawdzić, czy centrum IoT jest w stanie aktywnym, czy nie. Jeśli tak nie jest, w górnej części strony zostanie wyświetlone ostrzeżenie.

    Zrzut ekranu przedstawiający błąd usługi IoT Hub informujący, że nie jest w stanie aktywnym.

Uruchamianie urządzenia i obserwowanie zdarzeń

Teraz, gdy subskrypcja zdarzeń została skonfigurowana, przetestujmy, łącząc urządzenie.

Rejestrowanie urządzenia w usłudze IoT Hub

  1. W centrum IoT wybierz pozycję Urządzenia.

  2. Wybierz pozycję + Dodaj urządzenie w górnej części okienka.

  3. W polu Identyfikator urządzenia wpisz Demo-Device-1.

  4. Wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający lokalizację przycisku Dodaj urządzenie.

  5. Ponownie kliknij urządzenie; teraz zostaną wypełnione parametry połączenia i klucze. Skopiuj i zapisz podstawowe parametry połączenia do późniejszego użycia.

    Zrzut ekranu przedstawiający lokalizację podstawowych parametrów połączenia dla urządzenia.

Uruchamianie symulatora urządzenia Raspberry Pi

Użyjmy symulatora internetowego urządzenia Raspberry Pi do symulowania połączenia urządzenia.

Uruchamianie symulatora urządzenia Raspberry Pi

Uruchamianie przykładowej aplikacji w symulatorze internetowym urządzenia Raspberry Pi

Ta przykładowa aplikacja wyzwoli zdarzenie połączone z urządzeniem.

  1. W obszarze kodowania zastąp symbol zastępczy w wierszu 15 urządzeniem usługi Azure IoT Hub parametry połączenia zapisanym na końcu poprzedniej sekcji.

    Zrzut ekranu przedstawiający miejsce dodawania parametry połączenia podstawowej w skryscie urządzenia Raspberry Pi.

  2. Uruchom aplikację, wybierając pozycję Uruchom.

    Zostaną wyświetlone dane wyjściowe podobne do poniższych, które pokazują dane czujnika i komunikaty wysyłane do centrum IoT.

    Zrzut ekranu przedstawiający oczekiwania w konsoli danych wyjściowych po uruchomieniu urządzenia Raspberry Pi.

  3. Możesz sprawdzić stronę Przegląd aplikacji logiki, aby sprawdzić, czy logika jest wyzwalana. Zostanie wyświetlony komunikat Powodzenie lub Niepowodzenie. Sprawdź tutaj, czy stan aplikacji logiki jest potrzebny, jeśli jest to konieczne. Spodziewaj się 15–30 sekund opóźnienia po uruchomieniu wyzwalacza. Jeśli musisz rozwiązać problemy z aplikacją logiki, zapoznaj się z tym artykułem Rozwiązywanie problemów .

    Zrzut ekranu przedstawiający aktualizacje stanu na stronie Przegląd aplikacji logiki.

  4. Wybierz pozycję Zatrzymaj , aby zatrzymać symulator, który wyzwala zdarzenie Odłączone urządzenie. To zdarzenie spowoduje zalogowanie się na stronie Przegląd aplikacji logiki, podobnie jak w przypadku zarejestrowanego tam zdarzenia połączenia.

Teraz uruchomiono przykładową aplikację w celu zbierania zdarzeń połączenia i rozłączania urządzenia, które przechodzą do centrum IoT Hub.

Obserwowanie zdarzeń w usłudze Azure Cosmos DB

Wyniki wykonanej aplikacji logiki można wyświetlić w dokumencie usługi Cosmos DB. Podczas odświeżania strony dokument zostanie wyświetlony w kolekcji Items . Każde zdarzenie stanu połączenia generuje nowy dokument, który ma przypisany unikatowy idelement . Na poniższej ilustracji przedstawiono dokument utworzony podczas uruchamiania urządzenia (połączone). Typ połączonego zdarzenia jest wyświetlany w danych wyjściowych JSON.

Zrzut ekranu przedstawiający nowo wygenerowane zdarzenie stanu połączenia w kolekcji usługi Cosmos DB.

Korzystanie z interfejsu wiersza polecenia platformy Azure

Zamiast korzystać z witryny Azure Portal, możesz wykonać kroki usługi IoT Hub przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać szczegółowe informacje, zobacz strony interfejsu wiersza polecenia platformy Azure dotyczące tworzenia subskrypcji zdarzeń i tworzenia urządzenia IoT.

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ć.

Aplikacja logiki

Jeśli nie chcesz utracić efektów pracy z aplikacją logiki, nie usuwaj jej, tylko wyłącz.

  1. Przejdź do aplikacji logiki.

  2. W bloku Przegląd wybierz pozycję Usuń lub Wyłącz.

    Każda subskrypcja może zawierać jedno centrum IoT Hub, z którego korzystanie jest bezpłatne. Jeśli w samouczku utworzono bezpłatne centrum, nie musisz go usuwać, ponieważ nie generuje ono kosztów.

Centrum IoT lub usługa Event Grid

  1. Przejdź do centrum IoT Hub.

  2. W bloku Przegląd wybierz pozycję Usuń.

  3. Być może zdecydujesz się zachować centrum IoT Hub, ale usunąć utworzoną subskrypcję zdarzeń. W centrum IoT Hub wybierz pozycję Event Grid.

  4. Wybierz subskrypcję zdarzeń, którą chcesz usunąć, a następnie wybierz pozycję Usuń.

Cosmos DB

Aby usunąć konto usługi Azure Cosmos DB z witryny Azure Portal, przejdź do zasobu i wybierz pozycję Usuń konto na górnym pasku menu. Zobacz szczegółowe instrukcje dotyczące usuwania konta usługi Azure Cosmos DB.

Następne kroki