

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.

# Démonstration de la publication de messages avec le AWS IoT Device Client
<a name="iot-dc-testconn-publish"></a>

Les procédures décrites dans cette section montrent comment le client du AWS IoT périphérique peut envoyer des messages MQTT par défaut et personnalisés.

Les déclarations de politique que vous avez créées à l'étape précédente pour ces exercices autorisent le Raspberry Pi à effectuer les actions suivantes :
+ 

**`iot:Connect`**  
Permet au client nommé`PubSubTestThing`, votre Raspberry Pi exécutant le AWS IoT Device Client, de se connecter.

  ```
      {
        "Effect": "Allow",
        "Action": [
          "iot:Connect"
        ],
        "Resource": [
          "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing"
        ]
      }
  ```
+ 

**`iot:Publish`**  
Permet au Raspberry Pi de publier des messages dont la rubrique MQTT est `test/dc/pubtopic`.

  ```
      {
        "Effect": "Allow",
        "Action": [
          "iot:Publish"
        ],
        "Resource": [
          "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic"
        ]
      }
  ```

  L'action `iot:Publish` donne l'autorisation de publier dans les rubriques MQTT répertoriées dans le tableau de ressources. Le *contenu* de ces messages n'est pas contrôlé par la déclaration de politique.

## Publiez le message par défaut à l'aide du AWS IoT Device Client
<a name="iot-dc-testconn-publish-default"></a>

Cette procédure exécute le client de AWS IoT périphérique afin qu'il publie un seul message MQTT par défaut que le **client de test MQTT** reçoit et affiche.

**Pour envoyer le message MQTT par défaut depuis le client du AWS IoT périphérique**

1. Assurez-vous que la fenêtre du terminal de votre ordinateur hôte local connecté à votre Raspberry Pi et la fenêtre avec le **client de test MQTT** sont visibles pendant que vous effectuez cette procédure.

1. Dans la fenêtre du terminal, entrez ces commandes pour exécuter le client de AWS IoT périphérique à l'aide du fichier de configuration créé dans[Créez le fichier de configuration](iot-dc-install-configure.md#iot-dc-install-dc-configure-step1).

   ```
   cd ~/aws-iot-device-client/build
   ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json
   ```

   Dans la fenêtre du terminal, le client du AWS IoT périphérique affiche les messages d'information et les éventuelles erreurs survenant lors de son exécution.

   Si aucune erreur n'est affichée dans la fenêtre du terminal, passez en revue le **client de test MQTT**.

1. Dans le **client de test MQTT**, dans la fenêtre **Subscriptions**(Abonnements), consultez le *Hello World \$1* message envoyé à la rubrique `test/dc/pubtopic`.

1. Si le client de l' AWS IoT appareil n'affiche aucune erreur et que vous voyez *Hello World \$1* envoyé au `test/dc/pubtopic` message dans le **client de test MQTT**, vous avez démontré une connexion réussie.

1. Dans la fenêtre du terminal, entrez **^C** (Ctrl-C) pour arrêter le AWS IoT Device Client.

Après avoir démontré que le AWS IoT Device Client a publié le message MQTT par défaut, vous pouvez passer au[Publier un message personnalisé à l'aide du AWS IoT Device Client](#iot-dc-testconn-publish-custom).

## Publier un message personnalisé à l'aide du AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom"></a>

Les procédures décrites dans cette section créent un message MQTT personnalisé, puis exécutent le client de périphérique AWS IoT afin qu'il publie le message MQTT personnalisé une fois pour que le **client de test MQTT** le reçoive et l'affiche.

### Créez un message MQTT personnalisé pour le client du AWS IoT périphérique
<a name="iot-dc-testconn-publish-custom-create"></a>

Effectuez ces étapes dans la fenêtre du terminal sur l'ordinateur hôte local connecté à votre Raspberry Pi.

**Pour créer un message personnalisé à publier par le AWS IoT Device Client**

1. Dans la fenêtre du terminal, ouvrez un éditeur de texte comme `nano`.

1. Dans l'éditeur de texte, copiez et collez le document JSON suivant. Il s'agira de la charge utile du message MQTT que le client du AWS IoT périphérique publiera.

   ```
   {
     "temperature": 28,
     "humidity": 80,
     "barometer": 1013,
     "wind": {
       "velocity": 22,
       "bearing": 255
     }
   }
   ```

1. Enregistrement du contenu de l'éditeur de texte avec **\$1/messages/sample-ws-message.json**. 

1. Saisissez la commande suivante pour définir les autorisations du fichier de messages que vous venez de créer.

   ```
   chmod 600 ~/messages/*
   ```

**Pour créer un fichier de configuration que le client du AWS IoT périphérique utilisera pour envoyer le message personnalisé**

1. Dans la fenêtre du terminal, dans un éditeur de texte tel que`nano`, ouvrez le fichier de configuration AWS IoT Device Client existant :**\$1/dc-configs/dc-pubsub-config.json**. 

1. Modifiez l'objet `samples` pour qu'il ressemble à ceci. Aucune autre partie de ce fichier n'a besoin d'être modifiée.

   ```
     "samples": {
       "pub-sub": {
         "enabled": true,
         "publish-topic": "test/dc/pubtopic",
         "publish-file": "~/messages/sample-ws-message.json",
         "subscribe-topic": "test/dc/subtopic",
         "subscribe-file": "~/.aws-iot-device-client/log/pubsub_rx_msgs.log"
   ```

1. Enregistrement du contenu de l'éditeur de texte avec **\$1/dc-configs/dc-pubsub-custom-config.json**. 

1. Exécutez cette commande pour définir les autorisations sur le nouveau fichier de configuration.

   ```
   chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
   ```

### Publiez le message MQTT personnalisé à l'aide du AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom-publish"></a>

Cette modification n'affecte que le *contenu* de la charge utile des messages MQTT, de sorte que la politique actuelle continuera de fonctionner. Toutefois, si le *sujet MQTT* (tel que défini par la valeur `publish-topic` dans`~/dc-configs/dc-pubsub-custom-config.json`) était modifié, la déclaration de politique `iot::Publish` devrait également être modifiée pour permettre au Raspberry Pi de publier sur le nouveau sujet MQTT.

**Pour envoyer le message MQTT depuis le client du AWS IoT périphérique**

1. Assurez-vous que la fenêtre du terminal et la fenêtre avec le **client de test MQTT** sont visibles pendant que vous effectuez cette procédure. Assurez-vous également que votre **client de test MQTT** est toujours abonné au filtre **\$1 topic.** Si ce n'est pas le cas, abonnez-vous à nouveau au filtre de rubrique **\$1**.

1. Dans la fenêtre du terminal, entrez ces commandes pour exécuter AWS IoT Device Client à l'aide du fichier de configuration créé dans [Créez le fichier de configuration](iot-dc-install-configure.md#iot-dc-install-dc-configure-step1).

   ```
   cd ~/aws-iot-device-client/build
   ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json
   ```

   Dans la fenêtre du terminal, le client du AWS IoT périphérique affiche les messages d'information et les éventuelles erreurs survenant lors de son exécution.

   Si aucune erreur n'est affichée dans la fenêtre du terminal, passez en revue le client de test MQTT.

1. Dans le **client de test MQTT**, dans la fenêtre **Abonnements**, consultez la charge utile du message personnalisé envoyé à la rubrique du message `test/dc/pubtopic`.

1. Si le AWS IoT Device Client n'affiche aucune erreur et que vous voyez la charge utile du message personnalisé que vous avez publié sur le `test/dc/pubtopic` message dans le **client de test MQTT**, cela signifie que vous avez publié un message personnalisé avec succès.

1. Dans la fenêtre du terminal, entrez **^C** (Ctrl-C) pour arrêter le AWS IoT Device Client.

Après avoir démontré que le AWS IoT Device Client a publié une charge utile de messages personnalisée, vous pouvez continuer[Démontrer l'abonnement aux messages avec le AWS IoT Device Client](iot-dc-testconn-subscribe.md).