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.
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.
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.
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
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.
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 eventsDrugi 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
Prześlij komentarz