Abbiamo visto nello script #273 come possiamo sfruttare Event Grid per avere un endpoint MQTT 5 con il quale mandare e ricevere messaggi per un uso sul cloud o in edge. L'utilizzo dei topic, parte centrale del protocollo, è vincolato dai permessi che indicano ai client cosa possono fare e in quali topic possono scrivere. Attraverso i permission binding possiamo indicare tutto questo ma facendo riferimento ai client group. Ne esiste uno predefinito di nome $all, ma come vediamo in questo script, possiamo crearne degli altri per poter identificare un gruppo di client in base ai loro attributi.
Prima di tutto dobbiamo quindi andare all'interno dei client e specificare uno o più attributi che li caratterizzano, come mostrato nella figura seguente.
Successivamente possiamo procedere alla creazione di un gruppo e sfruttare la query per filtrare i client in base al loro attributo. Nell'esempio seguente filtriamo in base all'attributo type che deve essere uguale a iot.
Le possibilità di filtro non sono molte, ma sufficienti per la maggior parte degli scopi. Possiamo usare operatori logici come per esempio (attributes.sensors = "motion" or attributes.sensors = "humidity") or attributes.type = "home-sensors", gli operatori matematici, come per esempio attributes.floor <= 5 e l'operatore IN, come per esempio authenticationName IN ['client1', 'client2'].
A questo punto procediamo con il permssion binding, indicando il gruppo appena creato.
Non esiste per il momento la possibilità di vedere quali client soddisfano questi criteri, ma bisogna considerare che questi gruppi non sono pensati per essere numerosi. Possiamo arrivare fino a 10 gruppi, perciò, è fondamentale usare dei criteri che abbracciano molteplici client.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare i primary constructor in C#
Definire stili a livello di libreria in Angular
Reactive form tipizzati con modellazione del FormBuilder in Angular
Gestire la cancellazione di una richiesta in streaming da Blazor
Utilizzare gRPC su App Service di Azure
Gestire i dati con Azure Cosmos DB Data Explorer
Hosting di componenti WebAssembly in un'applicazione Blazor static
C# 12: Cosa c'è di nuovo e interessante
Eseguire una query su SQL Azure tramite un workflow di GitHub
Routing statico e PreRendering in una Blazor Web App
Generare velocemente pagine CRUD in Blazor con QuickGrid
Effettuare il refresh dei dati di una QuickGrid di Blazor