Spazi degli argomenti nella funzionalità broker MQTT di Griglia di eventi di Azure
Uno spazio di argomenti rappresenta più argomenti tramite un set di modelli di argomento. I modelli di argomento sono un'estensione dei filtri MQTT che supportano le variabili, insieme ai caratteri jolly MQTT. Ogni spazio dell'argomento rappresenta gli argomenti MQTT che devono essere usati dallo stesso set di client per comunicare.
Gli spazi degli argomenti vengono usati per semplificare la gestione del controllo di accesso consentendo di concedere l'accesso alla pubblicazione o alla sottoscrizione a un gruppo di argomenti contemporaneamente anziché gestire l'accesso per ogni singolo argomento. Per pubblicare o sottoscrivere qualsiasi argomento MQTT, è necessario:
- Creare una risorsa client per ogni client che deve comunicare tramite MQTT.
- Creare un gruppo client che includa i client che devono accedere alla pubblicazione o alla sottoscrizione nello stesso argomento MQTT.
- Creare uno spazio di argomenti che includa un modello di argomento che rappresenta il filtro dell'argomento o dell'argomento desiderato.
- Creare un'associazione di autorizzazioni per concedere al gruppo client l'accesso per pubblicare o sottoscrivere lo spazio dell'argomento.
Filtro dell'argomento MQTT:
Un filtro di argomento MQTT è un argomento MQTT che può includere caratteri jolly per uno o più dei relativi segmenti, consentendo la corrispondenza con più argomenti MQTT. Viene usato per semplificare le richieste di sottoscrizione in quanto un filtro di argomenti può corrispondere a più argomenti.
Il broker MQTT supporta tutti i caratteri jolly MQTT definiti dalla specifica MQTT come indicato di seguito:
- +: che corrisponde a un singolo segmento.
- Ad esempio, il filtro degli argomenti: "machines/+/alert" corrisponde agli argomenti seguenti:
- machines/temp/alert
- computer/umidità/avviso
- Ad esempio, il filtro degli argomenti: "machines/+/alert" corrisponde agli argomenti seguenti:
- #: che corrisponde a zero o più segmenti alla fine dell'argomento.
- Ad esempio, il filtro degli argomenti: "machines/#" corrisponde agli argomenti seguenti:
- machines
- computer/temp
- macchine/umidità
- computer/temp/alert e così via.
- Ad esempio, il filtro degli argomenti: "machines/#" corrisponde agli argomenti seguenti:
Per altre informazioni sui caratteri jolly, vedere Caratteri jolly dell'argomento nella specifica MQTT.
Modelli di argomento
I modelli di argomento sono un'estensione dei filtri MQTT che supportano le variabili, insieme ai caratteri jolly MQTT. La configurazione degli spazi degli argomenti fornisce 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. Altre informazioni sul modo in cui i modelli di argomento forniscono un controllo di accesso granulare.
Configurazione dello spazio degli argomenti:
Gli spazi degli argomenti possono raggruppare fino a 10 modelli di argomento. I modelli di argomento supportano i caratteri jolly MQTT (+ e #) e le variabili seguenti:
- ${client.authenticationName}: questa variabile rappresenta il nome di autenticazione del client. Altre informazioni sui nomi di autenticazione client.
- ${client.attributes.x}: questa variabile rappresenta un attributo assegnato a un client durante la creazione/aggiornamento del client, ad esempio "x" è uguale alla stringa esatta della chiave dell'attributo. Ad esempio, se un client ha l'attributo , un modello di argomento "area/${client.attributes.area}/telemetry" consente solo ai client con l'attributo> client "area:section1" di pubblicare nell'argomento MQTT "area/section1/telemetry". Altre informazioni sugli attributi client.
Nota:
Gli argomenti che iniziano con $ sono riservati per l'uso interno.
Una variabile può rappresentare una parte di un segmento o di un intero segmento, ma non può coprire più di un segmento. Ad esempio, un modello di argomento può includere "machines/${client.authenticationName|. factory1}/temp" corrisponde agli argomenti "machines/machine1.factory1/temp", "machines/machine2.factory1/temp" e così via.
I modelli di argomento usano caratteri speciali $ e | e questi devono essere preceduti da escape in modo diverso in base alla shell in uso. In PowerShell$ può essere preceduto da veicoli/${dollaro}telemetry/#. Se si usa PowerShell, è possibile eseguire l'escape di questi caratteri speciali, come illustrato negli esempi seguenti:
"vehicles/${client.authenticationName|dollar}/#"
vehicles/${client.authenticationName"|"dollar}/#
portale di Azure configurazione:
Usare la procedura seguente per creare uno spazio per argomenti:
- Passare allo spazio dei nomi nel portale di Azure.
- In Spazi argomento selezionare +Spazio argomenti.
- Assegnare un nome allo spazio dell'argomento.
Nota
- Il nome dello spazio degli argomenti può essere lungo 3-50 caratteri.
- Il nome dello spazio degli argomenti può includere caratteri alfanumerici, trattini (-) e senza spazi.
- Aggiungere almeno un modello di argomento selezionando +Aggiungi modello di argomento.
- Seleziona Crea.
Configurazione dell'interfaccia della riga di comando di Azure:
Usare i comandi seguenti per creare uno spazio per argomenti:
az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]
Nota
La propagazione degli aggiornamenti della configurazione dello spazio degli argomenti può richiedere alcuni minuti.
Passaggi successivi:
Altre informazioni sull'autorizzazione e l'autenticazione: