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.
Uno spazio tematico rappresenta più argomenti attraverso un insieme di template di argomento. I modelli di topic estendono i filtri di topic MQTT con il supporto per le variabili, oltre ai caratteri jolly standard di MQTT. Ogni spazio tematico rappresenta gli argomenti MQTT che lo stesso insieme di client utilizza per comunicare.
Gli spazi tematici semplificano il controllo degli accessi permettendo di concedere l'accesso a un gruppo di argomenti contemporaneamente, pubblicare o abbonarsi, invece di gestire l'accesso per ogni singolo argomento. Il modello di controllo degli accessi combina quattro risorse per concedere a un gruppo di client l'accesso per pubblicare o abbonarsi a uno spazio tematico:
- Client: Rappresenta un dispositivo o un'applicazione che comunica tramite MQTT.
- Gruppo client: Raggruppa i client che necessitano dello stesso accesso allo stesso insieme di argomenti MQTT.
- Spazio tematico: Raggruppa uno o più modelli di argomento che rappresentano gli argomenti o i filtri tematici voluti.
- Autorizzazione obbligatoria: concede a un gruppo cliente l'accesso a uno spazio tematico per pubblicare o abbonare.
Per ulteriori informazioni, vedi Controllo accessi per i client MQTT.
Questo articolo spiega come i filtri tematici MQTT, i template di argomenti e la configurazione dello spazio tematico lavorano insieme, così da poter raggruppare argomenti correlati e gestire l'accesso dei client in modo efficiente.
Filtri tematici MQTT
Un filtro di argomento MQTT è un argomento MQTT che può includere jolly per uno o più dei suoi segmenti, in modo da corrispondere a più argomenti MQTT. I filtri per argomenti semplificano le richieste di abbonamento, perché un filtro può corrispondere a più argomenti.
Il broker MQTT supporta tutte le carte jolly MQTT definite dalla specifica MQTT:
-
+corrisponde a un singolo segmento. Ad esempio, il filtromachines/+/alertdell'argomento corrisponde a questi argomenti:machines/temp/alertmachines/humidity/alert
-
#corrisponde a zero o più segmenti alla fine dell'argomento. Ad esempio, il filtromachines/#dell'argomento corrisponde a questi argomenti:machinesmachines/tempmachines/humiditymachines/temp/alert
Per ulteriori informazioni sui caratteri jolly, consulta Topic wildcards nella specifica MQTT.
Modelli di argomento
I modelli di topic estendono i filtri di topic MQTT con il supporto per le variabili, oltre ai caratteri jolly MQTT. La configurazione nello spazio dei temi fornisce anche un controllo granulare dell'accesso permettendoti di controllare l'autorizzazione di ogni client all'interno di un gruppo client a pubblicare o iscriversi al proprio argomento. Per maggiori informazioni, vedi come i modelli di argomento forniscono un controllo di accesso granulare.
Configurazione dello spazio tematico
Uno spazio tematico può raggruppare fino a 10 template di argomento. I template di argomento supportano le wildcard MQTT (+ e #) e le seguenti variabili:
-
${client.authenticationName}: Rappresenta il nome di autenticazione del client. Per ulteriori informazioni, vedi i termini chiave dei metadati client. -
${client.attributes.x}: Rappresenta un attributo assegnato a un client quando il client viene creato o aggiornato, dovexè la stringa esatta della chiave dell'attributo. Ad esempio, se un cliente ha l'attributoarea:section1, il templatearea/${client.attributes.area}/telemetrydi argomento consente solo ai clienti con quell'attributo di pubblicare sull'argomentoarea/section1/telemetryMQTT . Per maggiori informazioni, vedi clienti MQTT.
Annotazioni
- Gli argomenti che iniziano
$sono riservati all'uso interno. - Una variabile può rappresentare una porzione di un segmento o un intero segmento, ma non può coprire più di un segmento. Ad esempio, il modello
machines/${client.authenticationName|.factory1}/tempdi argomento corrisponde a argomenti comemachines/machine1.factory1/tempemachines/machine2.factory1/temp. - I template di argomento usano i caratteri
$speciali e|, che potresti dover evitare a seconda della shell che usi. Ad esempio, in PowerShell, si evadono questi caratteri come mostrato nei seguenti esempi:"vehicles/${client.authenticationName|dollar}/#"vehicles/${client.authenticationName"|"dollar}/#
Per creare uno spazio tematico nel portale Azure o con la interfaccia della riga di comando di Azure, vedi Pubblica e iscriviti ai messaggi MQTT. Quando nomini uno spazio tematico, usa queste regole:
- Il nome di uno spazio di argomento può essere lungo da 3 a 50 caratteri.
- Il nome di uno spazio tematico può includere caratteri alfanumerici e trattini (
-), senza spazi.
Il seguente esempio di interfaccia della riga di comando di Azure crea uno spazio tematico che ha due template di argomento:
az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]
Annotazioni
Gli aggiornamenti di configurazione dello spazio degli argomenti potrebbero richiedere qualche minuto per essere propagati.