Wzbogacanie komunikatów dla komunikatów IoT Hub z urządzenia do chmury

Wzbogacanie komunikatów to możliwość przesyłania komunikatów do wyznaczonego punktu końcowego przez centrum IoT do oznaczania komunikatów dodatkowymi informacjami. 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 telemetrycznych 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.

Przepływ wzbogacania komunikatów

Wzbogacanie komunikatów ma trzy kluczowe elementy:

  • Nazwa lub klucz wzbogacania

  • Wartość

  • Co najmniej jeden punkt końcowy , dla którego należy zastosować wzbogacanie.

Klucz jest ciągiem. Klucz może zawierać tylko znaki alfanumeryczne lub te znaki specjalne: łącznik (), podkreślenie (-_) i kropkę (.).

Wartość może być dowolną z następujących przykładów:

  • Dowolny ciąg statyczny. Wartości dynamiczne, takie jak warunki, logika, operacje i funkcje, nie są dozwolone. Jeśli na przykład utworzysz aplikację SaaS używaną przez kilku klientów, możesz przypisać identyfikator każdemu klientowi i udostępnić ten identyfikator w aplikacji. Po uruchomieniu aplikacji IoT Hub będzie oznaczać komunikaty telemetryczne urządzenia identyfikatorem klienta, dzięki czemu można przetwarzać komunikaty inaczej dla każdego klienta.

  • Nazwa centrum IoT wysyłającego komunikat. Ta wartość jest $iothubname.

  • Informacje z bliźniaczej reprezentacji urządzenia, takie jak ścieżka. Przykłady to $twin.tags.field i $twin.tags.latitude.

    Uwaga

    Obecnie obsługiwane są tylko zmienne $iothubname, $twin.tags, $twin.properties.desired i $twin.properties.reported. Ponadto tylko typy pierwotne są obsługiwane w przypadku wzbogacenia. Nie można wzbogacić komunikatów o typy obiektów.

Wzbogacanie komunikatów jest dodawane jako właściwości aplikacji do komunikatów wysyłanych do wybranych punktów końcowych.

Stosowanie wzbogacenia

Komunikaty mogą pochodzić z dowolnego źródła danych obsługiwanego przez routing komunikatów IoT Hub, w tym następujące przykłady:

  • dane telemetryczne urządzeń, takie jak temperatura lub ciśnienie
  • powiadomienia o zmianie bliźniaczej reprezentacji urządzenia — zmiany w bliźniaczej reprezentacji urządzenia
  • zdarzenia cyklu życia urządzenia, takie jak po utworzeniu lub usunięciu urządzenia

Możesz dodać wzbogacanie do komunikatów, które będą kierowane do wbudowanego punktu końcowego centrum IoT lub do komunikatów kierowanych do niestandardowych punktów końcowych, takich jak usługa Azure Blob Storage, kolejka usługi Service Bus lub temat usługi Service Bus.

Możesz również dodać wzbogacanie do komunikatów publikowanych w usłudze Event Grid, tworząc najpierw subskrypcję usługi Event Grid z typem komunikatu telemetrii urządzenia. Na podstawie tej subskrypcji utworzymy trasę domyślną w Azure IoT Hub dla danych telemetrycznych. Ta pojedyncza trasa może obsługiwać wszystkie subskrypcje usługi Event Grid. Następnie można skonfigurować wzbogacanie punktu końcowego przy użyciu karty Wzbogacanie komunikatów w sekcji routingu komunikatów IoT Hub. Aby uzyskać informacje na temat reagowania na zdarzenia przy użyciu usługi Event Grid, zobacz Iot Hub i Event Grid.

Wzbogacenia są stosowane na punkt końcowy. Jeśli określisz pięć wzbogacenia, które mają zostać oznaczone dla określonego punktu końcowego, wszystkie komunikaty przechodzące do tego punktu końcowego zostaną oznaczone tymi samymi pięcioma wzbogacaniami.

Wzbogacenia można skonfigurować przy użyciu następujących metod:

Metoda Polecenie
Portal Azure Portal Zobacz samouczek wzbogacania komunikatów
Interfejs wiersza polecenia platformy Azure az iot hub message-enrichment
Azure PowerShell Add-AzIotHubMessageEnrichment

Dodanie wzbogacania komunikatów nie powoduje dodania opóźnienia do routingu komunikatów.

Aby wypróbować wzbogacanie komunikatów, zobacz samouczek wzbogacania komunikatów

Ograniczenia

  • Możesz dodać maksymalnie 10 wzbogacań na centrum IoT dla tych centrów w warstwie Standardowa lub Podstawowa. W przypadku centrów IoT w warstwie Bezpłatna można dodać maksymalnie 2 wzbogacenia.

  • W niektórych przypadkach, jeśli wzbogacasz komunikat z wartością ustawioną na tag lub właściwość w bliźniaczej reprezentacji urządzenia, wartość zostanie oznaczona za pomocą określonej ścieżki bliźniaczej reprezentacji urządzenia. Jeśli na przykład wartość wzbogacania jest ustawiona na wartość $twin.tags.field, komunikaty zostaną oznaczone ciągiem "$twin.tags.field", a nie wartością tego pola z bliźniaczej reprezentacji. To zachowanie odbywa się w następujących przypadkach:

    • Centrum IoT znajduje się w warstwie podstawowa. Centra IoT w warstwie Podstawowa nie obsługują bliźniaczych reprezentacji urządzeń.

    • Centrum IoT znajduje się w warstwie Standardowa, ale ścieżka bliźniaczej reprezentacji urządzenia używana do wartości wzbogacania nie istnieje. Jeśli na przykład wartość wzbogacania jest ustawiona na wartość $twin.tags.location, a bliźniacza reprezentacja urządzenia nie ma właściwości lokalizacji w obszarze tagów, komunikat jest sygnaturowany ciągiem "$twin.tags.location".

    • Centrum IoT znajduje się w warstwie Standardowa, ale ścieżka bliźniaczej reprezentacji urządzenia używana do wartości wzbogacania jest rozpoznawana jako obiekt, a nie prosta właściwość. Jeśli na przykład wartość wzbogacania jest ustawiona na wartość $twin.tags.location, a właściwość location w obszarze tags jest obiektem zawierającym właściwości podrzędne, takie jak {"building": 43, "room": 503}, komunikat jest oznaczony ciągiem "$twin.tags.location".

  • Aktualizacje bliźniaczej reprezentacji urządzenia może upłynąć do pięciu minut, aby odzwierciedlić odpowiednią wartość wzbogacania.

  • Całkowity rozmiar komunikatu, w tym wzbogacanie, nie może przekraczać 256 KB. Jeśli rozmiar komunikatu przekracza 256 KB, centrum IoT hub usunie komunikat. Metryki IoT Hub służą do identyfikowania i debugowania błędów podczas porzucania komunikatów. Możesz na przykład monitorować metrykę komunikatów telemetrycznych niezgodnych (d2c.telemetry.egress.invalid) w metrykach routingu. Aby dowiedzieć się więcej, zobacz Monitorowanie IoT Hub.

  • Wzbogacanie komunikatów nie ma zastosowania do zdarzeń zmiany cyfrowej reprezentacji bliźniaczej.

  • Moduły nie dziedziczą tagów bliźniaczych reprezentacji z odpowiednich urządzeń. Wzbogacanie komunikatów pochodzących z modułów urządzenia (na przykład z modułów IoT Edge) musi używać tagów bliźniaczych reprezentacji ustawionych na bliźniaczej reprezentacji modułu.

Cennik

Wzbogacanie wiadomości jest dostępne bez dodatkowych opłat. Obecnie opłaty są naliczane po wysłaniu komunikatu do centrum IoT. Opłaty są naliczane tylko raz dla tego komunikatu, nawet jeśli komunikat przechodzi do wielu punktów końcowych.

Następne kroki

Zapoznaj się z tymi artykułami, aby uzyskać więcej informacji na temat routingu komunikatów do centrum IoT: