Udostępnij za pomocą


Samouczek: Wysyłanie danych z urządzenia do Azure Storage przy użyciu routingu wiadomości IoT Hub

Użyj trasowania wiadomości w Azure IoT Hub, aby wysyłać dane telemetryczne z Twoich urządzeń IoT do usług Azure, takich jak magazyn obiektów blob, kolejki Service Bus, tematy Service Bus i centra zdarzeń. Każdy hub IoT posiada domyślny wbudowany punkt końcowy, który jest kompatybilny z Event Hubs. Możesz również utworzyć niestandardowe punkty końcowe i kierować komunikaty do innych usług platformy Azure, definiując zapytania routingu. Każda wiadomość, która dociera do centrum IoT, jest kierowana do wszystkich punktów końcowych, których zapytania dotyczące trasowania są zgodne z nią. Jeśli komunikat nie jest zgodny z żadnym ze zdefiniowanych zapytań routingu, jest kierowany do domyślnego punktu końcowego.

W tym samouczku wykonasz następujące zadania:

  • Utwórz koncentrator IoT i wysyłaj do niego wiadomości z urządzeń.
  • Utwórz konto magazynowe.
  • Utwórz niestandardowy punkt końcowy dla konta magazynu i przekieruj do niego wiadomości z centrum IoT.
  • Wyświetl komunikaty urządzeń w BLOB-ie konta magazynu.

Prerequisites

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

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

  • W tym samouczku jest używany przykładowy kod z zestawu Microsoft Azure IoT SDK dla platformy .NET.

    • Pobierz lub sklonuj repozytorium SDK na swój komputer deweloperski.
    • Upewnij się, że masz .NET Core 3.0.0 lub nowszy na swojej maszynie deweloperskiej. Sprawdź swoją wersję, uruchamiając dotnet --version, i pobierz .NET, jeśli to konieczne.
  • Upewnij się, że port 8883 jest otwarty w twoim firewallu. Przykład w tym samouczku korzysta z protokołu MQTT, który komunikuje się przez port 8883. Ten port może zostać zablokowany w niektórych środowiskach sieci firmowych i edukacyjnych. Aby uzyskać więcej informacji i sposobów obejścia tego problemu, zobacz Nawiązywanie połączenia z usługą IoT Hub.

  • Opcjonalnie zainstaluj narzędzie Azure IoT Explorer (wersja zapoznawcza). To narzędzie pomaga w obserwacji wiadomości, gdy docierają do Twojego centrum IoT. Ten artykuł korzysta z Azure IoT Explorer.

Nie ma innych wymagań wstępnych dla portalu Azure.

Zarejestruj urządzenie i wysyłaj wiadomości do centrum IoT

Zarejestruj nowe urządzenie w swoim centrum IoT.

Important

Ten artykuł zawiera kroki do podłączenia urządzenia przy użyciu podpisu dostępu współdzielonego, znanego również jako uwierzytelnianie kluczem symetrycznym. Ta metoda uwierzytelniania jest wygodna w przypadku testów i oceny, ale uwierzytelnianie urządzenia za pomocą certyfikatów X.509 jest bardziej bezpiecznym podejściem. Aby dowiedzieć się więcej, zobacz Security best practices for IoT solutions Connection security (Najlepsze rozwiązania w zakresie zabezpieczeń rozwiązań > IoT Connection Security).

  1. Zaloguj się do portalu Azure i przejdź do swojego centrum IoT.

  2. Wybierz Urządzenia z sekcji Zarządzanie urządzeniami w menu.

  3. Wybierz Dodaj urządzenie.

    Zrzut ekranu przedstawiający dodawanie nowego urządzenia w witrynie Azure Portal.

  4. Podaj identyfikator urządzenia i wybierz Save.

  5. Nowe urządzenie powinno się teraz znajdować na liście urządzeń. Jeśli nie, odśwież stronę. Wybierz identyfikator urządzenia, aby otworzyć stronę szczegółów urządzenia.

  6. Skopiuj jeden z kluczy urządzenia i zapisz go. Ta wartość służy do konfigurowania przykładowego kodu, który generuje symulowane komunikaty telemetryczne urządzenia.

    Zrzut ekranu przedstawiający sposób kopiowania klucza podstawowego dla urządzenia IoT ze strony szczegółów urządzenia w witrynie Azure Portal.

Teraz, gdy masz identyfikator urządzenia i klucz, użyj przykładowego kodu, aby rozpocząć wysyłanie komunikatów telemetrycznych urządzenia do usługi IoT Hub.

Tip

Jeśli śledzisz kroki Azure CLI w tym samouczku, uruchom przykładowy kod w osobnej sesji. W ten sposób możesz pozwolić przykładowemu kodowi dalej działać, podczas gdy wykonujesz pozostałe kroki interfejsu wiersza poleceń (CLI).

  1. Jeśli nie jesteś częścią wymagań wstępnych, pobierz lub sklonuj zestaw SDK usługi Microsoft Azure IoT dla platformy .NET z repozytorium GitHub.

  2. Z katalogu, w którym pobrałeś lub sklonowałeś SDK, przejdź do folderu azure-iot-sdk-csharp\iothub\device\samples\how to guides\HubRoutingSample.

  3. Zainstaluj zestaw MICROSOFT Azure IoT SDK dla platformy .NET i niezbędne zależności określone w HubRoutingSample.csproj pliku:

    dotnet restore
    
  4. W edytorze według swojego wyboru otwórz plik Parameters.cs. Ten plik pokazuje parametry obsługiwane przez próbkę. Tylko parametr PrimaryConnectionString jest używany w tym artykule podczas uruchamiania przykładu. Przejrzyj kod w tym pliku. Żadne zmiany nie są potrzebne.

  5. Zbuduj i uruchom przykładowy kod, używając następującego polecenia:

    Zastąp <myDevicePrimaryConnectionString> swoim głównym ciągiem połączenia z urządzenia w swoim centrum IoT.

    dotnet run --PrimaryConnectionString <myDevicePrimaryConnectionString>
    
  6. Należy zacząć widzieć komunikaty pojawiające się na wyjściu, gdy są one wysyłane do usługi IoT Hub. Zostaw ten program uruchomiony podczas samouczka.

Skonfiguruj IoT Explorer, aby wyświetlać wiadomości

Skonfiguruj IoT Explorer, aby połączyć się z Twoim centrum IoT i odczytywać wiadomości, gdy docierają do wbudowanego punktu końcowego.

Najpierw pobierz łańcuch połączenia dla swojego centrum IoT.

  1. W portalu Azure przejdź do swojego IoT hubu.

  2. Wybierz Zasady wspólnego dostępu z sekcji Ustawienia zabezpieczeń w menu.

  3. Wybierz politykę iothubowner.

    Zrzut ekranu przedstawiający sposób wybierania zasad dostępu współdzielonego iothubowner w witrynie Azure Portal.

  4. Skopiuj Primary connection string.

    Zrzut ekranu przedstawiający sposób kopiowania podstawowego ciągu połączenia dla zasady iothubowner w centrum IoT w witrynie Azure Portal.

Teraz użyj tego connection string, aby skonfigurować IoT Explorer dla swojego IoT hub.

  1. Otwórz IoT Explorer na swojej maszynie deweloperskiej.

  2. Jeśli zostanie wyświetlony, wybierz pozycję Połącz za pośrednictwem parametrów połączenia usługi IoT Hub.

    Zrzut ekranu przedstawiający okienko Powitalne eksploratora usługi Azure IoT z wyróżnioną opcją nawiązywania połączenia za pośrednictwem parametrów połączenia usługi IoT Hub.

  3. Wybierz opcję Dodaj połączenie.

    Zrzut ekranu przedstawiający dodawanie połączenia centrum IoT w usłudze Azure IoT Explorer.

  4. Wklej ciąg połączenia swojego huba do pola tekstowego.

  5. Wybierz Zapisz.

  6. Po połączeniu z centrum IoT powinieneś zobaczyć listę urządzeń. Wybierz identyfikator urządzenia, który utworzyłeś na potrzeby tego samouczka.

  7. Wybierz pozycję Telemetria.

  8. Gdy urządzenie nadal działa, wybierz Start. Jeśli urządzenie nie jest uruchomione, nie można wyświetlić danych telemetrycznych.

    Zrzut ekranu przedstawiający okienko Telemetrii dla urządzeń w usłudze Azure IoT Explorer z wyróżnionym sposobem rozpoczęcia monitorowania telemetrii urządzenia.

  9. Powinieneś widzieć wiadomości przychodzące z Twojego urządzenia, z najnowszymi wyświetlanymi na górze.

    Zrzut ekranu przedstawiający komunikaty przychodzące do centrum IoT w wbudowanym punkcie końcowym.

    Obserwuj przychodzące wiadomości przez kilka chwil, aby zweryfikować, że widzisz trzy różne typy wiadomości: normalny, magazynowy i krytyczny. Po obejrzeniu wszystkich trzech typów komunikatów możesz zatrzymać urządzenie.

Wszystkie te wiadomości docierają do domyślnego wbudowanego punktu końcowego Twojego centrum IoT. W następnych sekcjach stworzymy niestandardowy punkt końcowy i przekierujemy niektóre z tych komunikatów do magazynu na podstawie właściwości wiadomości. Te komunikaty przestają pojawiać się w eksploratorze IoT, ponieważ komunikaty przechodzą tylko do wbudowanego punktu końcowego, gdy nie są zgodne z żadnymi innymi trasami w centrum IoT.

Skonfiguruj trasowanie wiadomości

Będziesz kierować wiadomości do różnych zasobów na podstawie właściwości przypisanych do wiadomości przez symulowane urządzenie. Wiadomości, które nie są przekierowane niestandardowo, są wysyłane do domyślnego punktu końcowego (wiadomości/zdarzenia).

Przykładowa aplikacja w tym samouczku przypisuje każdej wiadomości, którą wysyła do centrum IoT, właściwość level. Każdej wiadomości losowo przypisywany jest poziom normalny, przechowywania lub krytyczny.

Pierwszym krokiem jest skonfigurowanie punktu końcowego, do którego są kierowane dane. Drugi krok to skonfigurowanie trasy wiadomości, która korzysta z tego punktu końcowego. Po skonfigurowaniu trasowania możesz wyświetlać punkty końcowe i trasy wiadomości w portalu.

Utwórz konto magazynu

Utwórz konto usługi Azure Storage i kontener w ramach tego konta, które przechowuje komunikaty urządzenia, które są kierowane do niego.

  1. W portalu Azure wyszukaj kont Storage.

  2. Wybierz Utwórz.

  3. Podaj następujące wartości dla swojego konta magazynowego.

    Parameter Wartość
    Subscription Wybierz tę samą subskrypcję, która zawiera Twój IoT hub.
    Grupa zasobów Wybierz tę samą grupę zasobów, która zawiera twój IoT hub.
    Nazwa konta magazynu Proszę podać globalnie unikalną nazwę dla swojego konta magazynowego.
    Performance Zaakceptuj domyślną wartość Standard.

    Zrzut ekranu przedstawiający sposób tworzenia konta magazynowego w Azure Portal.

  4. Możesz zaakceptować wszystkie pozostałe wartości domyślne, wybierając Przegląd + utwórz.

  5. Po zakończeniu walidacji wybierz Utwórz.

  6. Po zakończeniu wdrażania wybierz Przejdź do zasobu.

  7. W menu konta magazynu wybierz Kontenery z sekcji Przechowywanie danych.

  8. Wybierz + Pojemnik, aby utworzyć nowy pojemnik.

    Zrzut ekranu przedstawiający sposób tworzenia kontenera dla konta magazynowego w portalu Azure.

  9. Podaj nazwę dla swojego kontenera i wybierz Utwórz.

Trasa do konta magazynu

Teraz skonfiguruj trasowanie dla konta magazynowego. W tej sekcji zdefiniujesz nowy punkt końcowy wskazujący konto magazynowe, które utworzyłeś. Następnie utworzysz trasę, która filtruje komunikaty, w których właściwość level jest ustawiona na przechowywanie, i kieruje te komunikaty do punktu końcowego przechowywania.

Note

Dane mogą być zapisywane w magazynie blobów w formacie Apache Avro, który jest domyślny, lub JSON.

Format kodowania można ustawić tylko w momencie konfigurowania punktu końcowego magazynu blobów. Nie można zmienić formatu dla wcześniej skonfigurowanego punktu końcowego. Podczas korzystania z kodowania JSON należy ustawić contentType na JSON, a contentEncoding na UTF-8 w właściwościach systemu wiadomości.

Aby uzyskać bardziej szczegółowe informacje na temat korzystania z punktu końcowego magazynu obiektów blob, zobacz Azure Storage jako punkt końcowy routingu.

Important

Ten artykuł zawiera kroki, aby połączyć się z usługą przy użyciu podpisu dostępu współdzielonego. Ta metoda uwierzytelniania jest wygodna do testowania i oceny, ale uwierzytelnianie usługi za pomocą Microsoft Entra ID lub zarządzanych tożsamości jest bardziej bezpiecznym podejściem. Aby dowiedzieć się więcej, zobacz Najlepsze rozwiązania w zakresie zabezpieczeń rozwiązań > IoT w chmurze.

  1. Na portalu Azure, przejdź do swojego centrum IoT.

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

    Zrzut ekranu przedstawiający lokalizację przycisku Dodaj, aby dodać nową trasę w centrum IoT.

  3. Na karcie Endpoint stwórz punkt końcowy pamięci masowej, podając następujące informacje:

    Parameter Wartość
    Typ punktu końcowego Wybierz pozycję Przechowywanie.
    Nazwa punktu końcowego Podaj unikalną nazwę dla tego punktu końcowego.
    Kontener usługi Azure Storage Wybierz Wybierz kontener. Postępuj zgodnie z instrukcjami, aby wybrać konto magazynowe i kontener, które utworzyłeś w poprzedniej sekcji.
    Encoding Wybierz JSON. Jeśli to pole jest wyszarzone, oznacza to, że region twojego konta magazynowego nie obsługuje JSON. W takim razie kontynuuj z domyślnym AVRO.

    Zrzut ekranu przedstawiający panel Dodaj punkt końcowy magazynu z prawidłowo wybranymi opcjami.

  4. Zaakceptuj domyślne wartości dla pozostałych parametrów i wybierz Utwórz + dalej.

  5. Na karcie Trasa podaj następujące informacje, aby utworzyć trasę, która wskazuje na utworzony punkt końcowy Storage:

    Parameter Wartość
    Name Utwórz nazwę dla swojej trasy.
    Źródło danych Zweryfikuj, czy Device Telemetry Messages jest wybrana z listy rozwijanej.
    Włącz trasę Sprawdź, czy to pole jest zaznaczone.
    Zapytanie dotyczące routingu Wprowadź level="storage" jako ciąg zapytania.

    Zrzut ekranu pokazujący dodawanie trasy przy użyciu zapytania routingu.

  6. Wybierz Utwórz + pomiń wzbogacenia.

Wyświetl przekierowane wiadomości

Po utworzeniu trasy w usłudze IoT Hub i włączeniu jej natychmiast rozpocznie kierowanie komunikatów spełniających warunek zapytania do punktu końcowego magazynu.

Monitoruj wbudowany punkt końcowy za pomocą IoT Explorer

Wróć do sesji usługi IoT Explorer na komputerze deweloperskim. Pamiętaj, że IoT Explorer monitoruje wbudowany punkt końcowy dla Twojego centrum IoT. Oznacza to, że teraz powinny być widoczne wyłącznie komunikaty, które nie są kierowane przez niestandardową trasę, którą stworzyliśmy.

Uruchom próbkę ponownie, wykonując kod. Obserwuj komunikaty przychodzące przez chwilę i powinieneś widzieć tylko te komunikaty, w których level jest ustawione na normal lub critical.

Wyświetlaj wiadomości w kontenerze pamięci masowej.

Zweryfikuj, czy wiadomości docierają do kontenera magazynowego.

  1. Na portalu Azure przejdź do swojego konta przechowywania.

  2. Wybierz Kontenery z sekcji Magazyn danych w menu.

  3. Wybierz kontener, który utworzyłeś do tego samouczka.

  4. Powinien być folder o nazwie Twojego centrum IoT. Przeglądaj strukturę plików, aż dotrzesz do pliku .json.

    Zrzut ekranu pokazujący znajdowanie przekierowywanych wiadomości w pamięci masowej.

  5. Wybierz plik JSON, a następnie wybierz Pobierz, aby pobrać plik JSON. Upewnij się, że plik zawiera wiadomości z Twojego urządzenia, które mają właściwość level ustawioną na storage.

  6. Przestań uruchamiać próbkę.

Wyczyść zasoby

Jeśli chcesz usunąć wszystkie zasoby Azure użyte w tym samouczku, usuń grupę zasobów. Ta akcja usuwa wszystkie zasoby znajdujące się w grupie. Jeśli nie chcesz usuwać całej grupy zasobów, użyj portalu Azure, aby zlokalizować i usunąć poszczególne zasoby.

Jeśli zamierzasz kontynuować następny samouczek, zachowaj zasoby, które tutaj stworzyłeś.

  1. W portalu Azure przejdź do grupy zasobów, która zawiera IoT hub i konto magazynu na potrzeby tego samouczka.
  2. Przejrzyj wszystkie zasoby znajdujące się w grupie zasobów, aby określić, które z nich chcesz uporządkować.
    • Jeśli chcesz usunąć wszystkie zasoby, wybierz Usuń grupę zasobów.
    • Jeśli chcesz usunąć tylko niektóre zasoby, użyj pól wyboru obok nazwy każdego zasobu, aby wybrać te, które chcesz usunąć. Następnie wybierz Usuń.

Następne kroki

W tym samouczku dowiesz się, jak utworzyć niestandardowy punkt końcowy dla zasobu Azure, a następnie jak stworzyć trasę do przesyłania wiadomości z urządzeń do tego punktu końcowego. Przejdź do następnego samouczka, aby dowiedzieć się, jak wzbogacić komunikaty o dodatkowe dane, które mogą być użyte do uproszczenia dalszego przetwarzania.