

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Demonstre a publicação de mensagens com o AWS IoT Device Client
<a name="iot-dc-testconn-publish"></a>

Os procedimentos nesta seção demonstram como o AWS IoT Device Client pode enviar mensagens MQTT padrão e personalizadas.

As seguintes declarações de política na política criada na etapa anterior para esses exercícios concedem ao Raspberry Pi permissão para realizar estas ações:
+ 

**`iot:Connect`**  
Fornece o nome do cliente`PubSubTestThing`, seu Raspberry Pi executando o AWS IoT Device Client, para se conectar.

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

**`iot:Publish`**  
Permite que o Raspberry Pi publique mensagens com um tópico MQTT de `test/dc/pubtopic`.

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

  A ação `iot:Publish` concede permissão para publicar em tópicos MQTT listados na matriz de recursos. A declaração de política não controla o *conteúdo* dessas mensagens.

## Publique a mensagem padrão usando o AWS IoT Device Client
<a name="iot-dc-testconn-publish-default"></a>

Esse procedimento executa o AWS IoT Device Client para que ele publique uma única mensagem MQTT padrão que o **cliente de teste MQTT** recebe e exibe.

**Para enviar a mensagem MQTT padrão do AWS IoT Device Client**

1. Certifique-se de que a janela do terminal do computador host local conectado ao Raspberry Pi e a janela com o **cliente de teste MQTT** estejam visíveis enquanto você realiza esse procedimento.

1. Na janela do terminal, insira esses comandos para executar o AWS IoT Device Client usando o arquivo de configuração criado em[Crie o arquivo de configuração](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
   ```

   Na janela do terminal, o AWS IoT Device Client exibe mensagens informativas e quaisquer erros que ocorram durante a execução.

   Caso nenhum erro seja exibido na janela do terminal, examine o **cliente de teste do MQTT**.

1. No **cliente de teste do MQTT**, na janela **Assinaturas**, consulte a mensagem *Olá, mundo\!* enviada ao tópico de mensagem `test/dc/pubtopic`.

1. Se o AWS IoT Device Client não exibir erros e você ver *Hello World\!* enviada para a `test/dc/pubtopic` mensagem no **cliente de teste do MQTT**, você demonstrou uma conexão bem-sucedida.

1. Na janela do terminal, digite **^C** (Ctrl-C) para parar o AWS IoT Device Client.

Depois de demonstrar que o AWS IoT Device Client publicou a mensagem padrão do MQTT, você pode continuar com o. [Publique uma mensagem personalizada usando o AWS IoT Device Client](#iot-dc-testconn-publish-custom)

## Publique uma mensagem personalizada usando o AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom"></a>

Os procedimentos desta seção criam uma mensagem MQTT personalizada e, depois, executam o AWS IoT Device Client para que ele publique a mensagem MQTT personalizada uma vez para que o **cliente de teste MQTT** a receba e exiba.

### Crie uma mensagem MQTT personalizada para o AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom-create"></a>

Realize as seguintes etapas na janela do terminal do computador host local que está conectado ao Raspberry Pi.

**Para criar uma mensagem personalizada para o AWS IoT Device Client publicar**

1. Na janela do terminal, abra um editor de texto, como o `nano`.

1. No editor de texto, copie e cole o seguinte documento JSON. Essa será a carga útil da mensagem MQTT que o AWS IoT Device Client publica.

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

1. Salve o conteúdo do editor de texto como **\~/messages/sample-ws-message.json**. 

1. Digite o comando a seguir para definir as permissões do arquivo de mensagem que você acabou de criar.

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

**Para criar um arquivo de configuração para o AWS IoT Device Client usar para enviar a mensagem personalizada**

1. Na janela do terminal, em um editor de texto como`nano`, abra o arquivo de configuração existente do AWS IoT Device Client:**\~/dc-configs/dc-pubsub-config.json**. 

1. Edite o objeto `samples` para que ele fique assim. Não são necessárias alterações em outras partes deste arquivo.

   ```
     "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. Salve o conteúdo do editor de texto como **\~/dc-configs/dc-pubsub-custom-config.json**. 

1. Execute este comando para definir permissões no novo arquivo de configuração.

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

### Publique a mensagem MQTT personalizada usando o AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom-publish"></a>

Essa alteração afeta somente o *conteúdo* da carga da mensagem MQTT, então a política atual permanecerá funcionando. No entanto, se o *tópico MQTT* (conforme definido pelo valor de `publish-topic` em`~/dc-configs/dc-pubsub-custom-config.json`) fosse alterado, a declaração de política `iot::Publish` também precisaria ser modificada para permitir que o Raspberry Pi publique no novo tópico do MQTT.

**Para enviar a mensagem MQTT do AWS IoT Device Client**

1. Certifique-se de que a janela do terminal e a janela com o **cliente de teste MQTT** estejam visíveis enquanto você realiza esse procedimento. Além disso, certifique-se de que o **cliente de teste MQTT** ainda seja assinante no filtro de tópicos **\#**. Se não o for, assine novamente o filtro de tópicos **\#**.

1. Na janela do terminal, digite os seguintes comandos para executar o AWS IoT Device Client usando o arquivo de configuração criado em [Crie o arquivo de configuração](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
   ```

   Na janela do terminal, o AWS IoT Device Client exibe mensagens informativas e quaisquer erros que ocorram durante a execução.

   Caso nenhum erro seja exibido na janela do terminal, examine o cliente de teste do MQTT.

1. No **cliente de teste MQTT**, na janela **Assinaturas**, examine a carga de mensagem personalizada enviada ao tópico de mensagem `test/dc/pubtopic`.

1. Se o AWS IoT Device Client não exibir erros e você ver a carga da mensagem personalizada que você publicou na `test/dc/pubtopic` mensagem no **cliente de teste do MQTT**, você publicou uma mensagem personalizada com sucesso.

1. Na janela do terminal, digite **^C** (Ctrl-C) para parar o AWS IoT Device Client.

Depois de demonstrar que o AWS IoT Device Client publicou uma carga de mensagem personalizada, você pode continuar[Demonstre a assinatura de mensagens com o AWS IoT Device Client](iot-dc-testconn-subscribe.md).