Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un espace thématique représente plusieurs sujets à travers un ensemble de modèles thématiques. Les modèles de rubrique étendent les filtres de rubrique MQTT en prenant en charge des variables, en plus des caractères génériques MQTT standard. Chaque espace thématique représente les sujets MQTT que le même ensemble de clients utilise pour communiquer.
Les espaces thématiques simplifient le contrôle d’accès en vous permettant d’accorder, publier ou vous abonner à un groupe de sujets simultanément, au lieu de gérer l’accès pour chaque sujet individuel. Le modèle de contrôle d’accès combine quatre ressources pour accorder à un groupe client l’accès à la publication ou à l’abonnement à un espace thématique :
- Client : Représente un appareil ou une application qui communique via MQTT.
- Groupe client : Regroupe les clients qui ont besoin du même accès au même ensemble de sujets MQTT.
- Espace thématique : Regroupe un ou plusieurs modèles de sujets représentant les sujets ou filtres de sujet prévus.
- Attribution des permissions : Accorde à un groupe client l’accès à la publication ou à l’abonnement à un espace thématique.
Pour plus d’informations, voir le contrôle d’accès pour les clients MQTT.
Cet article explique comment les filtres de sujets, les modèles de sujets et la configuration de l’espace thématique MQTT fonctionnent ensemble, afin que vous puissiez regrouper les sujets liés et gérer efficacement l’accès des clients.
Filtres thématiques MQTT
Un filtre de sujet MQTT est un sujet MQTT qui peut inclure des jokers pour un ou plusieurs de ses segments, afin de correspondre à plusieurs sujets MQTT. Les filtres thématiques simplifient les demandes d’abonnement, car un filtre de sujet peut correspondre à plusieurs sujets.
Le courtier MQTT prend en charge tous les jokers MQTT définis par la spécification MQTT :
-
+correspond à un seul segment. Par exemple, le filtremachines/+/alertthématique correspond à ces sujets :machines/temp/alertmachines/humidity/alert
-
#correspond à zéro ou plusieurs segments à la fin de la rubrique. Par exemple, le filtremachines/#thématique correspond à ces sujets :machinesmachines/tempmachines/humiditymachines/temp/alert
Pour plus d’informations sur les caractères génériques, consultez Caractères génériques de rubrique dans la spécification MQTT.
Modèles de rubrique
Les modèles de rubriques étendent les filtres de rubrique MQTT en prenant en charge des variables, en plus des caractères génériques MQTT. La configuration en espace thématique offre également un contrôle d’accès granulaire en vous permettant de contrôler l’autorisation de chaque client au sein d’un groupe client à publier ou s’abonner à son propre sujet. Pour plus d’informations, voyez comment les modèles de sujets offrent un contrôle d’accès granulaire.
Configuration de l’espace thématique
Un espace thématique peut regrouper jusqu’à 10 modèles de sujets. Les modèles de sujets prennent en charge les jokers MQTT (+ et #) ainsi que les variables suivantes :
-
${client.authenticationName}: Représente le nom d’authentification du client. Pour plus d’informations, voir les termes clés des métadonnées clients. -
${client.attributes.x}: Représente un attribut attribué à un client lors de la création ou de la mise à jour du client, oùxest la chaîne exacte de la clé d’attribut. Par exemple, si un client possède l’attributarea:section1, le modèlearea/${client.attributes.area}/telemetryde sujet permet uniquement aux clients ayant cet attribut de publier sur le sujetarea/section1/telemetryMQTT . Pour plus d’informations, consultez les clients MQTT.
Note
- Les sujets qui commencent
$sont réservés à un usage interne. - Une variable peut représenter une portion d’un segment ou un segment entier, mais elle ne peut pas couvrir plus d’un segment. Par exemple, le modèle
machines/${client.authenticationName|.factory1}/tempde sujet correspond à des sujets tels quemachines/machine1.factory1/tempetmachines/machine2.factory1/temp. - Les modèles de sujets utilisent les caractères
$spéciaux et|, que vous pourriez devoir éliminer selon l'interpréteur de commande que vous utilisez. Par exemple, dans PowerShell, échappez ces caractères comme indiqué dans les exemples suivants :"vehicles/${client.authenticationName|dollar}/#"vehicles/${client.authenticationName"|"dollar}/#
Pour créer un espace thématique dans le portail Azure ou avec la ligne de commande Azure CLI, consultez Publier et s’abonner aux messages MQTT. Lorsque vous nommez un espace thématique, utilisez ces règles :
- Le nom d’un espace thématique peut faire entre 3 et 50 caractères.
- Un nom d’espace thématique peut inclure des caractères alphanumériques et des traits d’union (
-), sans espaces.
L’exemple suivant d’Azure CLI crée un espace thématique qui comporte deux modèles de sujets :
az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]
Note
Les mises à jour de configuration en espace thématique peuvent prendre quelques minutes à être propagées.