Demonstrar a publicação de mensagens com o AWS IoT Device Client - AWS IoT Core

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á.

Demonstrar a publicação de mensagens com o AWS IoT Device Client

Os procedimentos desta seção indicam como o AWS IoT Device Client pode enviar mensagens MQTT padrão e customizadas.

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 ao cliente nomeado PubSubTestThing, seu Raspberry Pi que executa o AWS IoT Device Client, permissão 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.

Publicar a mensagem padrão usando o AWS IoT Device Client

Esse procedimento executa o AWS IoT Device Client para que ele publique uma única mensagem MQTT padrão a ser recebida e exibida pelo cliente de teste MQTT.

Para enviar a mensagem MQTT padrão a partir 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.

  2. 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.

    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 com informações e quaisquer erros ocorridos durante a execução.

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

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

  4. Se o AWS IoT Device Client não exibir erros e você verificar que Olá, mundo! foi enviada à mensagem test/dc/pubtopic no cliente de teste do MQTT, a conexão obteve êxito.

  5. Na janela do terminal, digite ^C (Ctrl-C) para interromper o AWS IoT Device Client.

Depois de demonstrar que o AWS IoT Device Client publicou a mensagem MQTT padrão, você pode avançar para Publicar uma mensagem padrão usando o AWS IoT Device Client.

Publicar uma mensagem padrão usando o AWS IoT Device Client

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

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

Para criar uma mensagem personalizada para publicação pelo AWS IoT Device Client
  1. Na janela do terminal, abra um editor de texto, como o nano.

  2. No editor de texto, copie e cole o seguinte documento JSON. Essa será a carga da mensagem MQTT publicada pelo AWS IoT Device Client.

    { "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
  3. Salve o conteúdo do editor de texto como ~/messages/sample-ws-message.json.

  4. 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 envio da mensagem personalizada
  1. Na janela do terminal, em um editor de texto como o nano, abra o arquivo de configuração já existente do AWS IoT Device Client: ~/dc-configs/dc-pubsub-config.json.

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

  4. 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

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 a partir 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 #.

  2. 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.

    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 com informações e quaisquer erros ocorridos durante a execução.

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

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

  4. Se o AWS IoT Device Client não exibir erros e você conseguir ver a carga da mensagem personalizada publicada na mensagem test/dc/pubtopic no cliente de teste do MQTT, a mensagem personalizada foi publicada com êxito.

  5. Na janela do terminal, digite ^C (Ctrl-C) para interromper o AWS IoT Device Client.

Depois de demonstrar que o AWS IoT Device Client publicou uma carga de mensagem personalizada, você pode avançar para Demonstrar a assinatura de mensagens com o AWS IoT Device Client.