Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Griglia di eventi di Azure consente ai client Message Queue Telemetry Transport (MQTT) di comunicare tra loro e con i servizi di Azure per supportare le soluzioni di Internet delle cose (IoT). È possibile usare la funzionalità del broker MQTT Griglia di eventi per eseguire gli scenari seguenti. Per esempi di codice che illustrano questi scenari, vedere questo repository.
- Inserire dati di telemetria usando un modello di messaggistica molti-a-uno. Questo criterio consente all'applicazione di scaricare il carico della gestione del numero elevato di connessioni con i dispositivi a Griglia di eventi.
- Controllare i client MQTT usando il modello di messaggistica richiesta-risposta (uno-a-uno). Questo criterio consente a qualunque client di comunicare con qualsiasi altro client senza restrizioni, indipendentemente dai ruoli dei client.
- Trasmettere avvisi a una flotta di client usando il modello di messaggistica uno-a-molti. Questo criterio consente all'applicazione di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
- Integrare dati dei client MQTT instradando i messaggi MQTT ai webhook e ai servizi di Azure tramite la funzionalità di recapito push HTTP. È possibile usare questa integrazione con i servizi di Azure per creare pipeline di dati che iniziano con l'inserimento dati dai dispositivi IoT.
Il broker MQTT è ideale per l'implementazione di scenari nei settori automobilistico, della mobilità e manifatturiero, tra gli altri. Per informazioni su come creare soluzioni sicure e scalabili per connettere milioni di client MQTT al cloud usando i servizi di messaggistica e analisi dei dati di Azure, vedere le architetture di riferimento i settori automobilistico e manifatturiero.
Concetti chiave
I concetti chiave seguenti sono coinvolti nella funzionalità del broker MQTT di Griglia di eventi.
MQTT
MQTT è un protocollo di trasporto di messaggistica pubblicazione-sottoscrizione concepito per ambienti vincolati. Si tratta di uno standard di comunicazione diffuso per gli scenari IoT in virtù della sua efficienza, scalabilità e affidabilità. Il broker MQTT consente ai client di pubblicare e sottoscrivere messaggi tramite MQTT v3.1.1, MQTT v3.1.1 su WebSocket, MQTT v5 e MQTT v5 su WebSocket. L'elenco seguente mostra alcune funzionalità principali del broker MQTT:
Funzionalità di MQTT v5:
- Testamento: segnala ai client MQTT le interruzioni improvvise di altri client MQTT. È possibile usare questa funzionalità per garantire un flusso di comunicazione prevedibile e affidabile tra i client MQTT durante le disconnessioni impreviste.
- Proprietà utente: consente di aggiungere coppie chiave-valore personalizzate nell'intestazione del messaggio per fornire un contesto più dettagliato sul messaggio. Ad esempio, includere lo scopo o l'origine del messaggio in modo che il destinatario possa gestirlo in maniera efficiente.
- Criterio richiesta-risposta: consente ai client di sfruttare il criterio asincrono di richiesta-risposta standard specificando l'argomento della risposta e l'ID di correlazione nella richiesta, in modo che il client possa rispondere senza una precedente configurazione.
- Intervallo di scadenza del messaggio: consente di dichiarare al broker MQTT quando ignorare un messaggio che non è più pertinente o valido. Ad esempio, ignorare i comandi o gli avvisi non aggiornati.
- Alias degli argomenti: consente ai client di ridurre le dimensioni del campo dell'argomento, il che rende il trasferimento dei dati meno costoso.
- Dimensione massima dei messaggi: consente ai client di controllare la dimensione massima dei messaggi che possono gestire dal server.
- Ricezione massima: consente ai client di controllare la frequenza dei messaggi in base alle loro capacità, ad esempio velocità di elaborazione o capacità di archiviazione.
- Avvio pulito e scadenza sessione: consente ai client di ottimizzare l'affidabilità e la sicurezza della sessione conservando i messaggi e le informazioni di sottoscrizione dei client per un intervallo di tempo configurabile.
- Riconoscimenti negativi: consente ai client di reagire in modo efficiente a codici di errore diversi.
- Pacchetti di disconnessione inviati dal server: consente ai client di gestire in modo efficiente le disconnessioni.
- Mantenimento MQTT: assicura che il broker archivi l'ultimo messaggio pubblicato in un argomento e lo distribuisca automaticamente a tutti i nuovi sottoscrittori. Questa funzionalità consente ai dispositivi di ricevere immediatamente lo stato noto più recente senza attendere l'aggiornamento successivo. Questa capacità consente una sincronizzazione dello stato più veloce e affidabile tra i sistemi IoT.
Funzionalità di MQTT v3.1.1:
- Testamento: segnala ai client MQTT le interruzioni improvvise di altri client MQTT. È possibile usare questa funzionalità per garantire un flusso di comunicazione prevedibile e affidabile tra i client MQTT durante le disconnessioni impreviste.
- Sessioni persistenti: assicura l'affidabilità mantenendo i messaggi e le informazioni di sottoscrizione del client quando è disconnesso.
- QoS 0 e 1: fornisce ai clienti il controllo sull'efficienza e l'affidabilità della comunicazione.
- Mantenimento MQTT: assicura che il broker archivi l'ultimo messaggio pubblicato in un argomento e lo distribuisca automaticamente a tutti i nuovi sottoscrittori. Questa funzionalità consente ai dispositivi di ricevere immediatamente lo stato noto più recente senza attendere l'aggiornamento successivo. Questa capacità consente una sincronizzazione dello stato più veloce e affidabile tra i sistemi IoT.
Le sezioni seguenti illustrano nel dettaglio le differenze attuali tra le funzionalità supportate dal Broker MQTT e le specifiche MQTT v5. QoS 2 non è supportato.
Altre informazioni sul broker MQTT e sulle limitazioni correnti.
Modello di messaggistica pubblicazione-sottoscrizione
Il modello di messaggistica pubblicazione-sottoscrizione fornisce una comunicazione scalabile e asincrona ai client. Consente ai client di scaricare il carico della gestione di un numero elevato di connessioni e messaggi al servizio. Tramite il modello di messaggistica pubblicazione-sottoscrizione, i client possono comunicare in modo efficiente usando criteri di messaggistica uno-a-molti, molti-a-uno e uno-a-uno:
- Uno-a-molti: consente ai client di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
- Molti-a-uno: consente ai client di scaricare il carico della gestione dell’elevato numero di connessioni al broker MQTT.
- Uno-a-uno: consente a qualunque client di comunicare con qualsiasi altro client senza restrizioni, indipendentemente dai ruoli dei client.
Spazio dei nomi
Uno spazio dei nomi di Griglia di eventi è un contenitore di gestione per le risorse che supportano la funzionalità del broker MQTT, insieme alle risorse che supportano la funzionalità di recapito pull. Il client MQTT può connettersi al broker MQTT e pubblicare-sottoscrivere i messaggi. Il broker MQTT autentica i client, autorizza le richieste di pubblicazione-sottoscrizione e inoltra i messaggi ai client interessati. Altre informazioni sul concetto di spazio dei nomi.
Client
I client fanno riferimento a dispositivi o applicazioni IoT che pubblicano e sottoscrivono messaggi MQTT.
I dispositivi IoT sono oggetti fisici connessi a Internet per la trasmissione di dati di telemetria e la ricezione di comandi. Questi dispositivi sono sensori, appliance, computer o altri oggetti dotati di sensori e software incorporati. I sensori e il software consentono loro di comunicare e interagire tra loro e con l'ambiente circostante. Il valore dei dispositivi IoT risiede nella capacità di fornire dati e informazioni dettagliate in tempo reale, il che consente alle aziende e ai singoli utenti di prendere decisioni informate e migliorare l’efficienza e la produttività.
Le applicazioni IoT sono software progettati per interagire con i dati dei dispositivi IoT ed elaborarli. In genere includono componenti come la raccolta di dati, l'elaborazione, l'archiviazione, la visualizzazione e l'analisi. Queste applicazioni consentono agli utenti di monitorare e controllare i dispositivi connessi, automatizzare le attività e ottenere informazioni dettagliate dai dati generati dai dispositivi IoT.
Autenticazione client
Griglia di eventi dispone di un registro client in cui vengono archiviate informazioni sui client autorizzati a connettersi. Prima che un client possa connettersi, deve essere presente una voce per tale client nel registro dei client. Poiché un client si connette al broker MQTT, deve eseguire l'autenticazione con il broker MQTT in base alle credenziali archiviate nel registro delle identità. Il broker MQTT supporta i meccanismi di autenticazione client seguenti:
- L’autenticazione del certificato X.509 è lo standard di autenticazione del settore nei dispositivi IoT.
- L’autenticazione di Microsoft Entra ID è lo standard di autenticazione di Azure per le applicazioni. Altre informazioni sull'autenticazione client MQTT.
- Autenticazioni flessibili:
- L’autenticazione OAuth 2.0 JSON Web Token (JWT) offre un'opzione leggera, sicura e flessibile per i client MQTT di cui non è stato effettuato il provisioning in Azure.
- L’autenticazione webhook personalizzata consente agli endpoint HTTP esterni (webhook) di autenticare dinamicamente le connessioni MQTT. Usa la convalida JWT di Microsoft Entra ID per garantire l'accesso sicuro.
Controllo di accesso
Il controllo di accesso è critico per gli scenari IoT considerando l'enorme scala degli ambienti IoT e le problematiche di sicurezza uniche dei dispositivi vincolati. Griglia di eventi offre un controllo degli accessi in base al ruolo tramite un modello di controllo degli accessi flessibile che è possibile usare per gestire l'autorizzazione dei client a pubblicare o sottoscrivere argomenti.
Considerando l'enorme scala degli ambienti IoT, l'assegnazione dell'autorizzazione per ogni client a ogni argomento è incredibilmente noiosa. Il controllo di accesso flessibile di Griglia di eventi gestisce questa problematica tramite il raggruppamento di client e argomenti in gruppi di client e spazi degli argomenti. Dopo aver creato gruppi di client e spazi degli argomenti, è possibile configurare un'associazione di autorizzazione per concedere a un gruppo di client l'accesso alla pubblicazione o alla sottoscrizione in uno spazio degli argomenti.
Gli spazi degli argomenti forniscono anche un controllo di accesso granulare, consentendo di controllare l'autorizzazione di ogni client di un gruppo di client a pubblicare o sottoscrivere il proprio argomento. Questo controllo di accesso granulare viene ottenuto usando le variabili nei modelli di argomento. Altre informazioni sul controllo di accesso.
Routing.
Con Griglia di eventi è possibile instradare i messaggi MQTT verso servizi di Azure o ai webhook per un'ulteriore elaborazione. Di conseguenza, è possibile creare soluzioni end-to-end usando i dati IoT per l'analisi dei dati, l'archiviazione e le visualizzazioni, tra gli altri casi d'uso. Usando la configurazione del routing, è possibile inviare tutti i messaggi MQTT provenienti dai client a un argomento dello spazio dei nomi di Griglia di eventi o a un argomento personalizzato di Griglia di eventi. Dopo aver inserito i messaggi nell'argomento, è possibile configurare una sottoscrizione di eventi per usare i messaggi dell'argomento. Ad esempio, con questa funzionalità è possibile usare Griglia di eventi per instradare dati di telemetria dai dispositivi IoT a Hub eventi e quindi ad Analisi di flusso di Azure, per ottenere informazioni dettagliate dai dati di telemetria del dispositivo. Altre informazioni sul routing.
Eventi MQTT verso flussi di eventi di Microsoft Fabric (anteprima)
Instradare messaggi MQTT ed eventi cloud da uno spazio dei nomi di Griglia di eventi a flussi di eventi di Microsoft Fabric per analisi, archiviazione e visualizzazione in tempo reale dei dati IoT.
Integrazione del broker Edge MQTT
Griglia di eventi si integra con Operazioni di Azure IoT per collegare la sua capacità di broker MQTT perimetrale con la funzionalità del broker MQTT di Griglia di eventi di Azure nel cloud. Operazioni di Azure IoT è un nuovo broker MQTT distribuito per l’edge computing, in esecuzione nei cluster Kubernetes abilitati per Azure Arc. Può connettersi al broker MQTT di Griglia di eventi con l'autenticazione di Microsoft Entra ID tramite l'identità gestita assegnata dal sistema, semplificando la gestione delle credenziali. Il broker MQTT offre disponibilità elevata, scalabilità e sicurezza per dispositivi e applicazioni IoT. Altre informazioni sulla connessione del broker MQTT di Operazioni di Azure IoT al broker MQTT di Griglia di eventi di Azure.
Eventi del ciclo di vita dei client MQTT
Gli eventi del ciclo di vita dei client consentono alle applicazioni di reagire agli eventi relativi allo stato della connessione client o alle operazioni delle risorse client. Consente di tenere traccia dello stato di connessione del client, reagire con un'azione di mitigazione in caso di disconnessioni dei client e tenere traccia dello spazio dei nomi a cui sono collegati i client durante i failover automatizzati. Altre informazioni sugli eventi del ciclo di vita del client MQTT.
Nomi di dominio personalizzati
Il supporto dei nomi di dominio personalizzati consente agli utenti di assegnare i propri nomi di dominio agli endpoint MQTT e HTTP dello spazio dei nomi di Griglia di eventi, il che migliora la sicurezza e semplifica la configurazione del client. Questa funzionalità consente alle aziende di soddisfare i requisiti di sicurezza e conformità ed elimina la necessità di modificare client già collegati al dominio. L'assegnazione di un nome di dominio personalizzato a più spazi dei nomi consente anche di migliorare la disponibilità, gestire la capacità e gestire la mobilità dei client tra aree. Altre informazioni sui nomi di dominio personalizzati.
Conservazione messaggi MQTT (anteprima)
Un messaggio MQTT conservato viene usato per archiviare l'ultimo valore valido noto di un argomento nel broker, assicurando che i nuovi sottoscrittori ricevano immediatamente il messaggio più recente senza attendere la pubblicazione successiva. Questa funzionalità è particolarmente utile in scenari come la creazione di report sullo stato dei dispositivi, i segnali di controllo o i dati di configurazione, in cui il messaggio più recente deve essere sempre disponibile per i client al momento della connessione. Per altre informazioni, vedere Supporto Mantenimento MQTT in Griglia di eventi di Azure.
Pubblicazione HTTP (anteprima)
La pubblicazione HTTP consente alle applicazioni di pubblicare messaggi MQTT nel broker MQTT di Griglia di eventi tramite una semplice richiesta HTTPS POST, senza mantenere una sessione MQTT attiva. È particolarmente adatta per scenari in cui i client MQTT non sono fattibili o necessari, ad esempio funzioni serverless, servizi cloud o applicazioni back-end. La pubblicazione HTTP consente alle architetture guidate dagli eventi di inserire messaggi MQTT in modo affidabile e sicuro. I casi d'uso comuni includono la pubblicazione di comandi, avvisi o segnali di controllo dei dispositivi di Funzioni di Azure, App per la logica di Azure o integrazioni API. Per altre informazioni, vedere Pubblicazione HTTP di messaggi MQTT in Griglia di eventi di Azure.
Concetti
Altre informazioni sui concetti del broker MQTT in Griglia di eventi:
- Terminologia
- Autenticazione client
- Controllo di accesso
- Supporto del protocollo MQTT
- Routing dei messaggi MQTT
- Eventi del ciclo di vita del client MQTT
Contenuti correlati
Altre informazioni sul broker MQTT e sui relativi concetti principali: