Panoramica del supporto MQTT in Griglia di eventi di Azure (anteprima)

Griglia di eventi di Azure consente ai client MQTT di comunicare tra loro e con i servizi di Azure, per supportare le soluzioni Internet delle cose (IoT).

Importante

Le funzionalità di messaggistica MQTT e recapito pull insieme alle risorse seguenti sono attualmente disponibili in ANTEPRIMA.

  • Spazi dei nomi
  • Argomenti dello spazio dei nomi
  • Sottoscrizioni di eventi agli argomenti dello spazio dei nomi
  • Spazi degli argomenti
  • Client
  • Gruppi di client
  • Certificati
  • Associazioni di autorizzazioni

Il supporto MQTT di Griglia di eventi consente di eseguire gli scenari seguenti:

  • Inserire i dati di telemetria usando un modello di messaggistica molti-a-uno. Questo modello consente all'applicazione di eseguire l'offload del carico di lavoro di gestione del numero elevato di connessioni con i dispositivi a Griglia di eventi.
  • Controllare i client MQTT usando il modello di messaggistica request-response (uno-a-uno). Questo modello consente a qualsiasi 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 modello consente all'applicazione di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
  • Integrare i dati dai client MQTT instradando i messaggi MQTT ai servizi di Azure e ai webhook tramite la funzionalità di recapito push HTTP. Questa integrazione con i servizi di Azure consente di creare pipeline di dati che iniziano con l'inserimento dei dati dai dispositivi IoT.

È possibile trovare esempi di codice che illustrano questi scenari in questo repository.

Il supporto MQTT in Griglia di eventi è ideale per l'implementazione di scenari di mobilità e automotive, tra gli altri. Vedere l'architettura di riferimento per informazioni su come creare soluzioni sicure e scalabili per connettere milioni di veicoli al cloud, usando i servizi di messaggistica e analisi dei dati di Azure.

Diagramma generale di Griglia di eventi che mostra la comunicazione MQTT bidirezionale con client server di pubblicazione e sottoscrittori.

Concetti chiave:

Di seguito è riportato un elenco dei concetti chiave relativi alla messaggistica MQTT in Griglia di eventi.

MQTT

MQTT è un protocollo di trasporto di messaggistica di pubblicazione-sottoscrizione progettato per ambienti vincolati. È diventato lo standard di comunicazione go-to per gli scenari IoT a causa di efficienza, scalabilità e affidabilità. Griglia di eventi consente ai client di pubblicare e sottoscrivere messaggi tramite MQTT v3.1.1, MQTT v3.1.1 su WebSockets, MQTT v5 e MQTT v5 su protocolli WebSocket. L'elenco seguente mostra alcune delle caratteristiche principali del supporto MQTT di Griglia di eventi:

  • Funzionalità di MQTT v5:

    • Le proprietà utente consentono di aggiungere coppie chiave-valore personalizzate nell'intestazione del messaggio per fornire più contesto sul messaggio. Ad esempio, includere lo scopo o l'origine del messaggio in modo che il ricevitore possa gestire il messaggio in modo efficiente.
    • Il modello request-response consente ai client di sfruttare il modello asincrono request-response standard, specificando l'argomento di risposta e l'ID di correlazione nella richiesta che il client risponda senza la configurazione precedente.
    • L'intervallo di scadenza dei messaggi consente di dichiarare a Griglia di eventi quando ignorare un messaggio che non è più rilevante o valido. Ad esempio, ignorare i comandi o gli avvisi non aggiornati.
    • Gli alias degli argomenti consentono ai client di ridurre le dimensioni del campo dell'argomento, rendendo il trasferimento dei dati meno costoso.
    • La dimensione massima dei messaggi consente ai client di controllare le dimensioni massime dei messaggi che possono gestire dal server.
    • Receive Maximum consente ai client di controllare la frequenza dei messaggi in base alle relative funzionalità, ad esempio la velocità di elaborazione o le funzionalità di archiviazione.
    • La pulizia della scadenza dell'avvio e della sessione consente ai client di ottimizzare l'affidabilità e la sicurezza della sessione mantenendo le informazioni e i messaggi della sottoscrizione del client per un intervallo di tempo configurabile.
    • I riconoscimenti negativi consentono ai client di reagire in modo efficiente a codici di errore diversi.
    • I pacchetti di disconnessione inviati dal server consentono ai client di gestire in modo efficiente le disconnessioni.
  • Griglia di eventi aggiunge altre funzionalità MQTT v5 in futuro per allinearsi maggiormente alle specifiche MQTT. Gli elementi seguenti illustrano in dettaglio le differenze correnti nel supporto MQTT di Griglia di eventi dalle specifiche MQTT: Will message, Retain flag, Message ordering e QoS 2 non sono supportati.

  • Funzionalità di MQTT v3.1.1:

    • Le sessioni permanenti garantiscono l'affidabilità mantenendo le informazioni e i messaggi della sottoscrizione del client quando un client si disconnette.
    • QoS 0 e 1 offrono ai clienti il controllo sull'efficienza e l'affidabilità della comunicazione.
  • Griglia di eventi aggiunge altre funzionalità MQTT v3.1.1 in futuro per allinearsi maggiormente alle specifiche MQTT. Gli elementi seguenti illustrano in dettaglio le differenze correnti nel supporto MQTT di Griglia di eventi dalla specifica MQTT v3.1.1: Will message, Retain flag, Message ordering e QoS 2 non sono supportati.

Altre informazioni sul supporto MQTT di Griglia di eventi e sulle limitazioni correnti.

modello di messaggistica Publish-Subscribe

Il modello di messaggistica publish-subscribe fornisce una comunicazione scalabile e asincrona ai client. Consente ai client di eseguire l'offload del carico di gestione di un numero elevato di connessioni e messaggi al servizio. Tramite il modello di messaggistica Publish-Subscribe, i client possono comunicare in modo efficiente usando modelli di messaggistica uno-a-molti, molti-a-uno e uno-a-uno.

  • Il modello di messaggistica uno-a-molti consente ai client di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
  • Il modello di messaggistica molti-a-uno consente ai client di scaricare il carico di lavoro di gestione del numero elevato di connessioni a Griglia di eventi.
  • Il modello di messaggistica uno-a-uno consente a qualsiasi client di comunicare con qualsiasi altro client senza restrizioni, indipendentemente dai ruoli dei client.

Spazio dei nomi

Lo 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 a Griglia di eventi e pubblicare/sottoscrivere messaggi, mentre Griglia di eventi 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 trasmettere i dati di telemetria e ricevere comandi. Questi dispositivi possono essere sensori, appliance, macchine o altri oggetti dotati di sensori e software incorporati. I sensori e il software consentono loro di comunicare e interagire tra loro e l'ambiente circostante. Il valore dei dispositivi IoT risiede nella capacità di fornire dati e informazioni dettagliate in tempo reale, consentendo alle aziende e ai singoli utenti di prendere decisioni informate e migliorare efficienza e produttività.

Le applicazioni IoT sono software progettato per interagire ed elaborare i dati dai dispositivi IoT. In genere includono componenti come la raccolta dei 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 che archivia informazioni sui client a cui è consentito connettersi. Prima che un client possa connettersi, deve essere presente una voce per tale client nel Registro di sistema client. Poiché un client si connette a Griglia di eventi, deve eseguire l'autenticazione con Griglia di eventi in base alle credenziali archiviate nel registro delle identità. Griglia di eventi supporta l'autenticazione del certificato X.509 standard di settore negli scenari IoT. Altre informazioni sull'autenticazione client MQTT.

Controllo di accesso

Il controllo di accesso è fondamentale per gli scenari IoT, considerando l'enorme scala degli ambienti IoT e le problematiche di sicurezza univoche dei dispositivi vincolati. Griglia di eventi fornisce Role-Based Controllo di accesso (RBAC) tramite un modello di controllo degli accessi flessibile che consente di gestire l'autorizzazione dei client a pubblicare o sottoscrivere argomenti.

Data 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 affronta questa sfida di scalabilità tramite il raggruppamento di client e argomenti in gruppi client e spazi di argomenti. Dopo aver creato gruppi client e spazi di argomenti, è possibile configurare un'associazione di autorizzazioni per concedere l'accesso a un gruppo client per pubblicare o sottoscrivere uno spazio di argomenti.

Diagramma del modello di controllo di accesso.

Gli spazi degli argomenti forniscono anche un controllo di accesso granulare consentendo di controllare l'autorizzazione di ogni client all'interno di un gruppo client per 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

Griglia di eventi consente di instradare i messaggi MQTT ai 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, l'archiviazione e le visualizzazioni dei dati, tra gli altri casi d'uso. La configurazione di routing consente di inviare tutti i messaggi dai client a un argomento personalizzato di Griglia di eventi e di configurare le sottoscrizioni di eventi di Griglia di eventi per instradare i messaggi da tale argomento di Griglia di eventi ai gestori eventi supportati. Ad esempio, questa funzionalità consente di usare Griglia di eventi per instradare i 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.

Diagramma del routing dei messaggi MQTT.

Eventi del ciclo di vita dei client MQTT

Gli eventi del ciclo di vita 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 per le disconnessioni client e tenere traccia dello spazio dei nomi a cui i client sono collegati durante i failover automatizzati. Altre informazioni sugli eventi del ciclo di vita del client MQTT.

Passaggi successivi

Usare gli articoli seguenti per altre informazioni sul supporto mqTT in Griglia di eventi e sui relativi concetti principali.

Introduzione

Concetti