IoT Hub message routing & endpoints

Załóżmy, że mamy już skonfigurowane urządzenie które wysyła informacje do naszego IoT Huba robiliśmy to już wcześniej IoT Hub i rejestracja urzadzeń.
Urządzenie więc nadaje, IoT Hub odbiera.

Wbudowany endpoint

Konstrukcja wbudowanego endpointu zapewnia nam wystawienie wiadomości przychodzących z urządzeń do dalszej obróbki. To publiczny Event Hub z pełnymi możliwościami. Jak spojrzymy na poniższą zakładkę to mamy jako powiedziane, że to Event Hub z ilością partycji, które wybraliśmy przy tworzeniu IoT Huba, publicznym adresem oraz z Customer Goups o których też pisałam przy Event Hubie.


Czy my możemy skorzystać z tego strumienia danych wychodzących z IoT Huba?
Oczywiście że tak. Mamy już wszystko co potrzebne, aby zobaczyć faktyczne wiadomości z urządzenia w jakimś dogodnym miejscu. Zróbmy to w Visual Studio Code.

VS Code monitoring

Oczywiście trzeba się zalogować do Azure i znaleźć IoT Huba. W menu będziemy mieć swoje urządzenie oraz endpointy. Na razie nie tworzyłam żadnego endpointa ale mamy od razu do dyspozycji Buit-in endpoints. Możemy włączyć monitoring tego endponta a w widoku Output pokażą nam się odbierane wiadomości.
Nasłuchujemy tego co wysyła urządzenie. Właściwie nie musimy robić nic więcej możemy wykorzystać ten mechanizm do obsługi ruchu z IoT Huba


To wbudowany mechanizm. Wszystkie zasoby które potrafią mogą od razu obsługiwać wysyłane wiadomości. Możemy jednak zmodyfikować, gdzie nasze wiadomości są wysyłane dzięki mechanizmowi Message Routing.

Custom endpoint

Na chwile obecną możemy przekazywać nasze wiadomości do Storege, Service Bus oraz Event Hub. Dodanie nowego endpointu to konfiguracja definicji połączenia do jednego z dozwolonych zasobów. To znaczy, że tworzymy możliwość wysyłania wiadomości już do konkretnego zasobu.

Message Routing

Teraz określimy sobie przekierowanie wiadomości, które przychodzą do IoT Huba bezpośrednio w inne miejsce. Zapewnia nam to Routing.
Jedną z ciekawszych rzeczy przy tworzeniu nowego przekierowania jest możliwość filtrowania wiadomości po ich zawartości Routing query.
Data source. Możemy też wybrać jakiego typu wiadomości są przekierowywane, ponieważ dostajemy nie tylko telemetrię (która zazwyczaj się zajmujemy) ale również zmiana wartości Device Twin oraz zdarzenia cyklu życia urządzenia. Jednak tutaj uwaga, będziemy mieć do dyspozycji tylko wiadomości o stworzeniu i usunięciu urządzenia. Nie będzie tutaj wiadomości o podłączeniu i rozłączeniu.
Pozostaje jeszcze wybór endpointu.
Tworzenie routingu zajmuje często sporo czasu. I może przysporzyć problemów. Nie udało mi się nigdy tego zrobić za pomocą ARM template - taki deployment się zawiesza i nigdy nie kończy.
Jak tylko routing zostanie utworzony build-in endpoint przestaje rozsyłać wiadomości

Przywrócić build-in endpoint

Musimy dodać nowy routing. W endpoincie wybieramy Build-in events
Drugi element to włączenie możliwości nadawania wiadomości na wiele endpointów. Jeśli nie klikniemy Enable fallback route pierwszy routing, który obsłuży wiadomość skonsumuje ją.
Gdy umożliwiamy fallback wiadomość będzie bomblowała do kolejnych routingów.


Komentarze

Popularne posty