Samouczek: używanie wzbogacania komunikatów usługi Azure IoT Hub

Wzbogacanie komunikatów to zdolność usługi Azure IoT Hub do oznaczania komunikatów dodatkowymi informacjami przed wysłaniem komunikatów do wyznaczonego punktu końcowego. Jednym z powodów używania wzbogacenia komunikatów jest uwzględnienie danych, których można użyć do uproszczenia przetwarzania podrzędnego. Na przykład wzbogacanie komunikatów urządzenia za pomocą tagu bliźniaczej reprezentacji urządzenia może zmniejszyć obciążenie klientów w celu wywołania interfejsu API bliźniaczej reprezentacji urządzenia dla tych informacji. Aby uzyskać więcej informacji, zobacz Omówienie wzbogacania komunikatów.

W pierwszej części tego samouczka przedstawiono sposób tworzenia niestandardowych punktów końcowych i kierowania komunikatów do innych usług platformy Azure. W tym samouczku zobaczysz, jak utworzyć i skonfigurować dodatkowe zasoby potrzebne do testowania wzbogacania komunikatów dla centrum IoT. Zasoby obejmują drugi kontener magazynu dla istniejącego konta magazynu (utworzonego w pierwszej części samouczka) do przechowywania wzbogaconych komunikatów i trasy komunikatów w celu ich wysłania. Po zakończeniu konfiguracji routingu komunikatów i wzbogacania komunikatów należy użyć aplikacji do wysyłania komunikatów do centrum IoT. Następnie centrum kieruje je do obu kontenerów magazynu. Wzbogacone są tylko komunikaty wysyłane do punktu końcowego dla wzbogaconego kontenera magazynu.

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

  • Utwórz drugi kontener na koncie magazynu.
  • Utwórz kolejny niestandardowy punkt końcowy i kieruj do niego komunikaty z centrum IoT Hub.
  • Skonfiguruj wzbogacania komunikatów, które są kierowane do nowego punktu końcowego.
  • Uruchom aplikację, która symuluje urządzenie IoT wysyłające komunikaty do centrum.
  • Wyświetl wyniki i sprawdź, czy wzbogacenia komunikatów są stosowane do komunikatów docelowych.

Wymagania wstępne

W witrynie Azure Portal nie ma żadnych innych wymagań wstępnych.

Tworzenie drugiego kontenera na koncie magazynu

W pierwszej części tego samouczka utworzono konto magazynu i kontener dla komunikatów kierowanych. Teraz należy utworzyć drugi kontener dla wzbogaconych komunikatów.

  1. W witrynie Azure Portal wyszukaj pozycję Konta magazynu.

  2. Wybierz utworzone wcześniej konto magazynu.

  3. W menu konta magazynu wybierz pozycję Kontenery w sekcji Magazyn danych.

  4. Wybierz pozycję Kontener , aby utworzyć nowy kontener.

    Zrzut ekranu przedstawiający tworzenie kontenera magazynu.

  5. Nadaj kontenerowi enrichednazwę , a następnie wybierz pozycję Utwórz.

Kierowanie komunikatów do drugiego punktu końcowego

Utwórz drugi punkt końcowy i trasę dla wzbogaconych komunikatów.

  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.

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

  3. Na karcie Punkt końcowy utwórz punkt końcowy magazynu, podając następujące informacje:

    Parametr Wartość
    Typ punktu końcowego Wybierz pozycję Magazyn.
    Nazwa punktu końcowego Wprowadź ContosoStorageEndpointEnriched.
    Kontener usługi Azure Storage Wybierz pozycję Wybierz kontener. Postępuj zgodnie z monitami, aby wybrać konto magazynu i wzbogacony kontener utworzony w poprzedniej sekcji.
    Kodowanie Wybierz pozycję JSON. Jeśli to pole jest wyszarzone, region konta magazynu nie obsługuje formatu JSON. W takim przypadku kontynuuj korzystanie z domyślnej usługi AVRO.

    Zrzut ekranu przedstawiający wybieranie kontenera dla punktu końcowego.

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

  5. Kontynuuj tworzenie nowej trasy, po dodaniu punktu końcowego magazynu. Podaj następujące informacje dotyczące nowej trasy:

    Parametr Wartość
    Nazwa/nazwisko ContosoStorageRouteEnriched
    Źródło danych Sprawdź, czy z listy rozwijanej wybrano pozycję Komunikaty telemetryczne urządzenia.
    Włączanie trasy Sprawdź, czy to pole ma wartość enabled.
    Zapytanie dotyczące routingu Wprowadź level="storage" jako ciąg zapytania.

    Zrzut ekranu przedstawiający zapisywanie informacji o kwerendzie routingu.

  6. Wybierz pozycję Utwórz i dodaj wzbogacania.

Dodawanie wzbogacania komunikatów do nowego punktu końcowego

Utwórz trzy wzbogacania komunikatów, które zostaną przekierowane do wzbogaconego kontenera magazynu.

  1. Na karcie Wzbogacanie kreatora Dodawanie trasy dodaj trzy wzbogacania komunikatów dla komunikatów przechodzących do punktu końcowego dla kontenera magazynu o nazwie wzbogacone.

    Dodaj te wartości jako wzbogacenia komunikatów dla punktu końcowego ContosoStorageEndpointEnriched:

    Nazwa/nazwisko Wartość
    myIotHub $hubname
    DeviceLocation $twin.tags.location (zakłada, że bliźniacza reprezentacja urządzenia ma tag lokalizacji)
    Idklienta 6ce345b8-1e4a-411e-9398-d34587459a3a

    Po zakończeniu wzbogacanie powinno wyglądać podobnie do poniższego obrazu:

    Zrzut ekranu przedstawiający tabelę z dodanymi wszystkimi wzbogacaniami.

  2. Wybierz pozycję Dodaj , aby dodać wzbogacanie komunikatów.

Masz teraz skonfigurowane wzbogacania komunikatów dla wszystkich komunikatów kierowanych do punktu końcowego utworzonego dla wzbogaconych komunikatów. Jeśli nie chcesz dodawać tagu lokalizacji do bliźniaczej reprezentacji urządzenia, możesz przejść do sekcji Testowanie wzbogacania komunikatów, aby kontynuować samouczek.

Dodawanie tagu lokalizacji do bliźniaczej reprezentacji urządzenia

Jedno z wzbogacenia komunikatów skonfigurowanych w centrum IoT Hub określa klucz DeviceLocation z jego wartością określoną przez następującą ścieżkę bliźniaczej reprezentacji urządzenia: $twin.tags.location. Jeśli bliźniacza reprezentacja urządzenia nie ma tagu lokalizacji, ścieżka $twin.tags.locationbliźniaczej reprezentacji zostanie oznaczona jako ciąg klucza DeviceLocation w wzbogacaniu komunikatu.

Wykonaj następujące kroki, aby dodać tag lokalizacji do bliźniaczej reprezentacji urządzenia:

  1. Przejdź do centrum IoT w witrynie Azure Portal.

  2. Wybierz pozycję Urządzenia w menu nawigacji centrum IoT, a następnie wybierz urządzenie.

  3. Wybierz kartę Bliźniacze reprezentacje urządzenia w górnej części strony urządzenia i dodaj następujący wiersz tuż przed zamykającym nawiasem klamrowym u dołu bliźniaczej reprezentacji urządzenia. Następnie wybierz opcję Zapisz.

      , "tags": {"location": "Plant 43"}
    

    Zrzut ekranu przedstawiający dodawanie tagu lokalizacji do bliźniaczej reprezentacji urządzenia w witrynie Azure Portal.

Napiwek

Poczekaj około pięciu minut, zanim przejdziesz do następnej sekcji. Może upłynąć do tego czasu, aby aktualizacje bliźniaczej reprezentacji urządzenia mogły zostać odzwierciedlone w wartościach wzbogacania komunikatów.

Aby dowiedzieć się więcej o obsłudze ścieżek bliźniaczych reprezentacji urządzenia przy użyciu wzbogacania komunikatów, zobacz Ograniczenia wzbogacania komunikatów. Aby dowiedzieć się więcej na temat bliźniaczych reprezentacji urządzeń, zobacz Omówienie bliźniaczych reprezentacji urządzeń i korzystanie z nich w usłudze IoT Hub.

Wzbogacanie komunikatów testowych

Po skonfigurowaniu wzbogacania komunikatów dla punktu końcowego ContosoStorageEndpointEnriched uruchom aplikację urządzenia symulowanego w celu wysyłania komunikatów do centrum IoT. W tym momencie routing komunikatów został skonfigurowany w następujący sposób:

  • Komunikaty kierowane do punktu końcowego magazynu utworzonego w pierwszej części samouczka nie zostaną wzbogacone i będą przechowywane w utworzonym kontenerze magazynu.

  • Komunikaty kierowane do punktu końcowego magazynu ContosoStorageEndpointEnriched zostaną wzbogacone i przechowywane w kontenerze magazynu wzbogaconym.

Jeśli nadal nie uruchamiasz aplikacji konsolowej SimulatedDevice z pierwszej części tego samouczka, uruchom ją ponownie:

Napiwek

Jeśli wykonasz kroki interfejsu wiersza polecenia platformy Azure dla tego samouczka, uruchom przykładowy kod w oddzielnej sesji. Dzięki temu możesz zezwolić na kontynuowanie działania przykładowego kodu podczas wykonywania pozostałych kroków interfejsu wiersza polecenia.

  1. W folderze przykładowym przejdź do /iot-hub/Tutorials/Routing/SimulatedDevice/ folderu .

  2. Definicje zmiennych, które zostały zaktualizowane wcześniej, powinny być prawidłowe, ale jeśli nie, należy je edytować w Program.cs pliku:

    1. Znajdź definicje zmiennych w górnej części klasy Program . Zaktualizuj następujące zmienne przy użyciu własnych informacji:

      • s_myDeviceId: identyfikator urządzenia przypisany podczas rejestrowania urządzenia w centrum IoT.
      • s_iotHubUri: nazwa hosta centrum IoT Hub, która przyjmuje format IOTHUB_NAME.azure-devices.net.
      • s_deviceKey: klucz podstawowy urządzenia znajdujący się w informacjach o tożsamości urządzenia.
    2. Zapisz i zamknij plik.

  3. Uruchom przykładowy kod:

    dotnet run
    

Po opuszczeniu aplikacji konsolowej do uruchomienia przez kilka minut wyświetl dane:

  1. W witrynie Azure Portal przejdź do swojego konta magazynu.

  2. Wybierz pozycję Przeglądarka magazynu z menu nawigacji. Wybierz pozycję Kontenery obiektów blob, aby wyświetlić dwa kontenery utworzone w ramach tych samouczków.

    Zrzut ekranu przedstawiający kontenery obiektów blob na koncie magazynu.

Komunikaty w kontenerze o nazwie wzbogacone zawierają wzbogacenia komunikatów zawarte w komunikatach. Komunikaty w utworzonym wcześniej kontenerze mają nieprzetworzone komunikaty bez wzbogacenia. Przejdź do wzbogaconego kontenera, aż przejdziesz do dołu, a następnie otwórz najnowszy plik wiadomości. Następnie wykonaj to samo dla innego kontenera, aby sprawdzić, czy jeden jest wzbogacony, a drugi nie.

Gdy przyjrzysz się komunikatom, które zostały wzbogacone, powinna zostać wyświetlona "myIotHub" nazwa centrum, lokalizacja i identyfikator klienta, w następujący sposób:

{
  "EnqueuedTimeUtc":"2019-05-10T06:06:32.7220000Z",
  "Properties":
  {
    "level":"storage",
    "myIotHub":"{your hub name}",
    "DeviceLocation":"Plant 43",
    "customerID":"6ce345b8-1e4a-411e-9398-d34587459a3a"
  },
  "SystemProperties":
  {
    "connectionDeviceId":"Contoso-Test-Device",
    "connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
    "connectionDeviceGenerationId":"636930642531278483",
    "enqueuedTime":"2019-05-10T06:06:32.7220000Z"
  },"Body":"eyJkZXZpY2VJZCI6IkNvbnRvc28tVGVzdC1EZXZpY2UiLCJ0ZW1wZXJhdHVyZSI6MjkuMjMyMDE2ODQ4MDQyNjE1LCJodW1pZGl0eSI6NjQuMzA1MzQ5NjkyODQ0NDg3LCJwb2ludEluZm8iOiJUaGlzIGlzIGEgc3RvcmFnZSBtZXNzYWdlLiJ9"
}

Czyszczenie zasobów

Aby usunąć wszystkie zasoby utworzone w obu częściach tego samouczka, usuń grupę zasobów. Ta akcja spowoduje również usunięcie wszystkich zasobów znajdujących się w grupie. Jeśli nie chcesz usuwać całej grupy zasobów, możesz wybrać poszczególne zasoby, aby je usunąć.

  1. W witrynie Azure Portal przejdź do grupy zasobów zawierającej centrum IoT i konto magazynu na potrzeby tego samouczka.
  2. Przejrzyj wszystkie zasoby, które znajdują się w grupie zasobów, aby określić, które zasoby chcesz wyczyścić.
    • Jeśli chcesz usunąć cały zasób, wybierz pozycję Usuń grupę zasobów.
    • Jeśli chcesz usunąć tylko określony zasób, użyj pól wyboru obok każdej nazwy zasobu, aby wybrać te, które chcesz usunąć. Następnie wybierz Usuń.

Następne kroki

W tym samouczku skonfigurowano i przetestowano wzbogacanie komunikatów dla komunikatów usługi IoT Hub podczas ich kierowania do punktu końcowego.

Aby uzyskać więcej informacji na temat wzbogacania komunikatów, zobacz Omówienie wzbogaceń komunikatów.

Aby dowiedzieć się więcej na temat usługi IoT Hub, przejdź do następnego samouczka.