

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Demuestre la publicación de mensajes con el cliente AWS IoT del dispositivo
<a name="iot-dc-testconn-publish"></a>

Los procedimientos de esta sección muestran cómo el cliente del AWS IoT dispositivo puede enviar mensajes MQTT predeterminados y personalizados.

Estas declaraciones en la política que ha creado en el paso anterior para estos ejercicios dan permiso a la Raspberry Pi para realizar estas acciones:
+ 

**`iot:Connect`**  
Proporciona el nombre del cliente`PubSubTestThing`, su Raspberry Pi que ejecuta el AWS IoT Device Client, para conectarse.

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

**`iot:Publish`**  
Dar permiso a la Raspberry Pi para publicar mensajes con un tema de MQTT de `test/dc/pubtopic`.

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

  La acción `iot:Publish` da permiso para publicar en los temas de MQTT que figuran en la matriz de recursos. El *contenido* de esos mensajes no está controlado por la declaración de política.

## Publica el mensaje predeterminado mediante el AWS IoT Device Client
<a name="iot-dc-testconn-publish-default"></a>

Este procedimiento ejecuta el cliente del AWS IoT dispositivo para publicar un único mensaje MQTT predeterminado que el **cliente de prueba MQTT** recibe y muestra.

**Para enviar el mensaje MQTT predeterminado desde el cliente del dispositivo AWS IoT**

1. Asegúrese de que tanto la ventana del terminal de su ordenador host local conectada a su Raspberry Pi como la ventana con el **cliente de prueba de MQTT** estén visibles mientras realiza este procedimiento.

1. En la ventana del terminal, introduzca estos comandos para ejecutar el AWS IoT Device Client mediante el archivo de configuración creado en[Crear el archivo de configuración](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
   ```

   En la ventana del terminal, el cliente del AWS IoT dispositivo muestra los mensajes de información y cualquier error que se produzca durante su ejecución.

   Si no se muestra ningún error en la ventana del terminal, revise el **cliente de prueba de MQTT**.

1. En la opción **Cliente de prueba de MQTT**, en la ventana **Suscripciones**, consulte el mensaje *Hello World\!* enviado al tema del mensaje `test/dc/pubtopic`.

1. Si el cliente del AWS IoT dispositivo no muestra ningún error y aparece *Hello World\!* enviado al `test/dc/pubtopic` mensaje en el **cliente de prueba de MQTT**, ha demostrado que la conexión se ha realizado correctamente.

1. En la ventana del terminal, introduzca **^C** (Ctrl-C) para detener el cliente del AWS IoT dispositivo.

Una vez que haya demostrado que el cliente del AWS IoT dispositivo publicó el mensaje MQTT predeterminado, puede continuar con el. [Publique un mensaje personalizado mediante el AWS IoT Device Client](#iot-dc-testconn-publish-custom)

## Publique un mensaje personalizado mediante el AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom"></a>

Los procedimientos de esta sección crean un mensaje de MQTT personalizado y, a continuación, ejecutan AWS IoT Device Client para publicar el mensaje de MQTT personalizado una vez para que el **cliente de prueba de MQTT** lo reciba y lo muestre.

### Cree un mensaje MQTT personalizado para el cliente del AWS IoT dispositivo
<a name="iot-dc-testconn-publish-custom-create"></a>

Realice estos pasos en la ventana del terminal del ordenador host local que está conectado a su Raspberry Pi.

**Para crear un mensaje personalizado para que el cliente del AWS IoT dispositivo lo publique**

1. En la ventana del terminal, abra un editor de texto, por ejemplo, `nano`.

1. En el editor de texto, copie y pegue el siguiente documento JSON. Esta será la carga útil de mensajes MQTT que publique el cliente del AWS IoT dispositivo.

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

1. Guarde el contenido del editor de texto como **\~/messages/sample-ws-message.json**. 

1. Introduzca el siguiente comando para configurar los permisos del archivo de mensaje que acaba de crear.

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

**Crear un archivo de configuración para que el cliente del AWS IoT dispositivo lo utilice para enviar el mensaje personalizado**

1. En la ventana del terminal, en un editor de texto como`nano`, por ejemplo, abra el archivo de configuración de AWS IoT Device Client existente:**\~/dc-configs/dc-pubsub-config.json**. 

1. Edita el objeto de `samples` para que tenga este aspecto. No es necesario cambiar ninguna otra parte de este archivo.

   ```
     "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. Guarde el contenido del editor de texto como **\~/dc-configs/dc-pubsub-custom-config.json**. 

1. Ejecute este comando para establecer los permisos en el nuevo archivo de configuración.

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

### Publique el mensaje MQTT personalizado mediante el AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom-publish"></a>

Este cambio afecta únicamente al *contenido* de la carga del mensaje de MQTT, por lo que la política actual seguirá funcionando. Sin embargo, si se cambiara el *tema de MQTT* (tal como lo define el valor `publish-topic` en `~/dc-configs/dc-pubsub-custom-config.json`), también habría que modificar la declaración de política de `iot::Publish` para permitir que la Raspberry Pi publique en el nuevo tema de MQTT.

**Para enviar el mensaje MQTT desde el cliente del dispositivo AWS IoT**

1. Asegúrese de que tanto la ventana del terminal como la ventana con el **cliente de prueba de MQTT** estén visibles mientras realiza este procedimiento. Además, verifique que su **cliente de prueba de MQTT** siga suscrito al filtro de temas **\#**. Si no lo está, vuelva a suscribirse al filtro de temas **\#**.

1. En la ventana del terminal, introduzca estos comandos para ejecutar AWS IoT Device Client mediante el archivo de configuración creado en [Crear el archivo de configuración](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
   ```

   En la ventana del terminal, el cliente del AWS IoT dispositivo muestra los mensajes de información y cualquier error que se produzca durante su ejecución.

   Si no se muestra ningún error en la ventana del terminal, revise el cliente de prueba de MQTT.

1. En el **cliente de prueba de MQTT**, en la ventana **Suscripciones**, observe la carga del mensaje personalizado enviado al tema del mensaje `test/dc/pubtopic`.

1. Si el cliente del AWS IoT dispositivo no muestra ningún error y usted ve la carga útil del mensaje personalizado que publicó en el `test/dc/pubtopic` mensaje en el **cliente de prueba de MQTT**, significa que ha publicado el mensaje personalizado correctamente.

1. En la ventana del terminal, introduzca **^C** (Ctrl-C) para detener el cliente del dispositivo. AWS IoT 

Una vez que hayas demostrado que el cliente del AWS IoT dispositivo publicó una carga de mensajes personalizada, puedes continuar haciéndolo. [Demuestre la suscripción a los mensajes con el cliente del dispositivo AWS IoT](iot-dc-testconn-subscribe.md)