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
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Simulare Azure Cosmos DB in locale con Docker
Utilizzare Azure AI Studio per testare i modelli AI
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Ottenere un token di accesso per una GitHub App
Fornire parametri ad un Web component HTML
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Rendere le variabili read-only in una pipeline di Azure DevOps
Supportare la sessione affinity di Azure App Service con Application Gateway
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Utilizzare una qualunque lista per i parametri di tipo params in C#