Azure IoT Hub è un servizio cloud gestito, pensato per mantenere connessi dispositivi e principalmente per ricevere e inviare messaggi. Di fatto viene sfruttato un Event Hub che è in grado di ricevere una grande quantità di messaggi che noi possiamo processare.
Nelle situazioni reali, è facile però dover gestire queste messaggi a seconda del tipo, della priorità o di altri fattori. Questa necessità nasce dal fatto che vogliamo eseguire attività diverse e con scalabilità diverse, scegliendo lo scenario più appropriato. Per esempio i messaggi di telemetria potrebbero essere processati da uno Stream Analytics, mentre messaggi di errore li vogliamo instradare ad una coda di Service Bus opportunamente monitorata da una Azure Function.
Per raggiungere questo scopo possiamo sfruttare il routing di Azure IoT Hub, cioè quella funzionalità che permette di instradare i messaggi a destinatari diversi. Quest'ultimi sono endpoint precedentemente configurati. Il primo passo quindi è quello di accedere al portale e nella sezione apposita, come nell'immagine.
Aggiungiamo un nuovo custom endpoint, indicando quale coda identificare, con namespace e nome.
Fatto questo possiamo accedere alla sezione routing e aggiungere una nuova regola. Dobbiamo prima di tutto scegliere su quale coda di messaggi lavorare, poiché in IoT Hub disponiamo due tipi di code. Successivamente indichiamo l'endpoint destinatario e quale regola applicare. Possiamo lavorare per esempio su un header del messaggio, come nell'esempio seguente.
Fatto questo possiamo salvare la regola ottenendo così l'instradamento desiderato. Il comportamento predefinito prevede che tutti i messaggi non individuati con regole, seguano il flusso tradizionale, ma una spunta ci permette di cambiare comportamento.
Per dettagli su quali condizioni possiamo scrivere, si veda il seguente indirizzo
https://docs.microsoft.com/it-it/azure/iot-hub/iot-hub-devguide-query-language#a-nameexpressions-and-conditionsaespressioni-e-condizioni
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare gruppi di client per Event Grid MQTT
Usare lo spread operator con i collection initializer in C#
Testare l'invio dei messaggi con Event Hubs Data Explorer
Creare un webhook in Azure DevOps
Utilizzare Azure AI Studio per testare i modelli AI
Recuperare App Service cancellati su Azure
Migliorare la sicurezza dei prompt con Azure AI Studio
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Code scanning e advanced security con Azure DevOps
Utilizzare un service principal per accedere a Azure Container Registry
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Sfruttare al massimo i topic space di Event Grid MQTT
I più letti di oggi
- Windows DNA Parte prima
- Microsoft Visual Studio Code: un nuovo editor gratuito per Windows, MacOSX e Linux per sviluppatori ASP.NET e Node.js
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- Realizzare una Progressive Web Application con Blazor e ASP.NET Core
- Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
- IISControl: come comandare IIS
- ASP.NET 4.0 AJAX arriva alla Preview 5, in attesa della beta2 di ASP.NET 4.0
- Preview 2 di ASP.NET MVC 2.0 ed una nuova versione per AJAX Control Toolkit
- Docker e ASP.NET Core: portare i nostri siti web su container
- Abilitare e gestire il prerendering nelle applicazioni Blazor WebAssembly