

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Ajout de la propagation des attributs pour l’enrichissement des messages
<a name="thing-types-propagating-attributes"></a>

Dans AWS IoT Core, vous pouvez enrichir les messages MQTT des appareils en ajoutant des attributs de propagation, qui sont des métadonnées contextuelles issues d'attributs d'objets ou de détails de connexion. Ce processus, connu sous le nom d'enrichissement des messages, peut être utile dans divers scénarios. Par exemple, vous pouvez enrichir les messages pour chaque opération de publication entrante sans apporter de modifications côté appareil ni utiliser de règles. En tirant parti des attributs de propagation, vous pouvez bénéficier d'un moyen plus efficace et plus rentable d'enrichir vos données IoT sans les complexités liées à la configuration des règles ou à la gestion des configurations de republication.

La fonctionnalité d'enrichissement des messages est disponible pour AWS IoT Core les clients qui utilisent [Basic Ingest](https://docs.aws.amazon.com//iot/latest/developerguide/iot-basic-ingest.html) et [Message Broker](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html). Il est important de noter que même si les appareils de publication peuvent utiliser n'importe quelle version de MQTT, les abonnés (applications ou services consommant des messages) doivent prendre en charge [MQTT 5](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) pour recevoir les messages enrichis avec des attributs de propagation. Les messages enrichis seront ajoutés en tant que propriétés utilisateur MQTT 5 à chaque message publié depuis des appareils. Si vous utilisez des [règles](https://docs.aws.amazon.com//iot/latest/developerguide/iot-rules.html), vous pouvez tirer parti de la fonction [get\$1user\$1properties](https://docs.aws.amazon.com//iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-get-user-properties) pour récupérer les données enrichies pour le routage ou le traitement des messages en fonction de ces données.

Dans AWS IoT Core, vous pouvez ajouter des attributs de propagation lorsque vous créez ou mettez à jour un type d'objet, en utilisant le AWS Management Console ou le AWS CLI.

**Important**  
Lorsque vous ajoutez des attributs de propagation, vous devez vous assurer que le client qui publie le message a été authentifié à l'aide d'un certificat. Pour de plus amples informations, veuillez consulter [Authentification client](client-authentication.md).

**Note**  
Si vous essayez de tester cette fonctionnalité à l'aide du client de test MQTT intégré à la console, elle risque de ne pas fonctionner car cette fonctionnalité nécessite que les clients MQTT soient authentifiés avec un certificat associé.

## AWS Management Console
<a name="configure-propagating-attributes-console"></a>

**Pour ajouter des attributs de propagation destinés à enrichir les messages à l'aide du AWS Management Console**

1. Ouvrez la [page d'AWS IoT accueil](https://console.aws.amazon.com//iot/home#/home) dans la AWS IoT console. Dans le volet de navigation de gauche, dans **Gérer**, sélectionnez **Tous les appareils**. Choisissez ensuite les **types d'objets**.

1. Sur la page **Types d'**objets, choisissez **Créer un type d'objet**.

   Pour configurer l'enrichissement des messages en mettant à jour un type d'objet, choisissez-en un. Ensuite, sur la page de détails du type d'objet, choisissez **Mettre à jour**.

1. Sur la page **Créer un type d'objet**, choisissez ou entrez les informations relatives au type d'objet dans les **propriétés du type d'objet**.

   Si vous choisissez de mettre à jour un type d'objet, les **propriétés du type d'objet apparaîtront** une fois que vous aurez sélectionné **Mettre à jour à** l'étape précédente.

1. Dans **Configuration supplémentaire**, développez les **attributs de propagation**. Choisissez ensuite **Attribut d'objet** et entrez l'attribut d'objet que vous souhaitez renseigner dans les MQTT5 messages publiés. À l'aide de la console, vous pouvez ajouter jusqu'à trois attributs d'objets.

   Dans la section **Attributs de propagation**, choisissez **Attribut de connexion** et entrez le type d'attribut et éventuellement le nom de l'attribut.

1. Ajoutez éventuellement des balises. Choisissez ensuite **Créer un type d'objet**.

   Si vous choisissez de mettre à jour un type d'objet, choisissez **Mettre à jour le type d'objet**.

## AWS CLI
<a name="configure-propagating-attributes-cli"></a>

1. Pour ajouter des attributs de propagation destinés à enrichir les messages en créant un nouveau type d'objet à l'aide de AWS CLI, exécutez la [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-thing-type.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-thing-type.html)commande. Voici un exemple de commande.

   ```
   aws iot create-thing-type \
       --thing-type-name "LightBulb" \
       --thing-type-properties "{\"mqtt5Configuration\":{\"propagatingAttributes\":[{\"userPropertyKey\":\"iot:ClientId\", \"connectionAttribute\":\"iot:ClientId\"}, {\"userPropertyKey\":\"test\", \"thingAttribute\":\"A\"}]}}" \
   ```

   Le résultat de la commande peut ressembler à ce qui suit.

   ```
   {
   	"thingTypeName": "LightBulb",
   	"thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb",
   	"thingTypeId": "ce3573b0-0a3c-45a7-ac93-4e0ce14cd190"
   }
   ```

1. Pour configurer l'enrichissement des messages en mettant à jour un type d'objet à l'aide de AWS CLI, exécutez la [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-thing-type.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-thing-type.html)commande. Notez que vous ne pouvez effectuer la mise à jour que `mqtt5Configuration` lorsque vous exécutez cette commande. Voici un exemple de commande.

   ```
   aws iot update-thing-type \
       --thing-type-name "MyThingType" \
       --thing-type-properties "{\"mqtt5Configuration\":{\"propagatingAttributes\":[{\"userPropertyKey\":\"iot:ClientId\", \"connectionAttribute\":\"iot:ClientId\"}, {\"userPropertyKey\":\"test\", \"thingAttribute\":\"A\"}]}}" \
   ```

   Cette commande ne produit aucune sortie.

1. Pour décrire un type d'objet, exécutez la `describe-thing-type` commande. Cette commande produira une sortie contenant des informations de configuration d'enrichissement des messages sur le `thing-type-properties` terrain. Voici un exemple de commande.

   ```
   aws iot describe-thing-type \
       --thing-type-name "LightBulb"
   ```

   Le résultat peut ressembler à ce qui suit.

   ```
   {
   	"thingTypeName": "LightBulb",
   	"thingTypeId": "bdf72512-0116-4392-8d79-bf39b17ef73d",
   	"thingTypeArn": "arn:aws:iot:us-east-1:123456789012:thingtype/LightBulb",
   	"thingTypeProperties": {
   		"mqtt5Configuration": {
   			"propagatingAttributes": [
   				{
   					"userPropertyKey": "iot:ClientId",
   					"connectionAttribute": "iot:ClientId"
   				},
   				{
   					"userPropertyKey": "test",
   					"thingAttribute": "attribute"
   				}
   			]
   		}
   	},
   	"thingTypeMetadata": {
   		"deprecated": false,
   		"creationDate": "2024-10-18T17:37:46.656000+00:00"
   	}
   }
   ```

Pour de plus amples informations, veuillez consulter [Types d'objets](thing-types.md).