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 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.
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
-
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, 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.
-
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ê ver Hello World! enviada para a
test/dc/pubtopic
mensagem no cliente de teste do MQTT, você demonstrou uma conexão bem-sucedida. -
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
-
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 útil da mensagem MQTT que o AWS IoT Device Client publica.
{ "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 enviar a mensagem personalizada
-
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
. -
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 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 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.
-
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ê 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. -
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.