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
-
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.
-
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.
-
No cliente de teste do MQTT, na janela Assinaturas, consulte a mensagem Olá, mundo! enviada ao tópico de mensagem
test/dc/pubtopic
. -
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. -
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
-
Na janela do terminal, abra um editor de texto, como o
nano
. -
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 } }
-
Salve o conteúdo do editor de texto como
~/messages/sample-ws-message.json
. -
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
-
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
. -
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" -
Salve o conteúdo do editor de texto como
~/dc-configs/dc-pubsub-custom-config.json
. -
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
-
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 #.
-
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.
-
No cliente de teste MQTT, na janela Assinaturas, examine a carga de mensagem personalizada enviada ao tópico de mensagem
test/dc/pubtopic
. -
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. -
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.