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

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

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 clientePubSubTestThing, 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.

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

  2. Na janela do terminal, insira esses comandos para executar o AWS IoT Device Client usando o arquivo de configuração criado emCrie 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 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.

  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ê ver Hello World! enviada para a test/dc/pubtopic mensagem no cliente de teste do MQTT, você demonstrou uma conexão bem-sucedida.

  5. 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. 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 o AWS IoT Device Client publicar
  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 útil da mensagem MQTT que o AWS IoT Device Client publica.

    { "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 enviar a mensagem personalizada
  1. Na janela do terminal, em um editor de texto comonano, abra o arquivo de configuração 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 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 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.

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

  5. 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 continuarDemonstre a assinatura de mensagens com o AWS IoT Device Client.