翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Device Client でのメッセージの発行のデモンストレーション
このセクションの手順では、 AWS IoT Device Client がデフォルトおよびカスタムMQTTメッセージを送信する方法を示します。
前のステップでこれらの演習用に作成したポリシー内のポリシーステートメントでは、以下のアクションを実行するアクセス許可が Raspberry Pi に付与されます。
-
iot:Connect
Device Client を実行
PubSubTestThing
している Raspberry Pi である という名前の AWS IoT クライアントに接続できるようにします。{ "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing" ] }
-
iot:Publish
Raspberry Pi に、 のMQTTトピックを含むメッセージを公開するアクセス許可を付与します
test/dc/pubtopic
。{ "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }
iot:Publish
アクションは、リソース配列にリストされているMQTTトピックに発行するアクセス許可を付与します。これらのメッセージの内容は、ポリシーステートメントによって制御されません。
AWS IoT Device Client を使用してデフォルトメッセージを発行する
この手順では、 AWS IoT Device Client を実行して、MQTTテストクライアントが受信して表示する 1 つのデフォルトMQTTメッセージを公開します。
AWS IoT Device Client からデフォルトのMQTTメッセージを送信するには
-
この手順を実行するときは、Raspberry Pi に接続されているローカルホストコンピュータのターミナルウィンドウと、MQTTテストクライアントがあるウィンドウの両方が表示されていることを確認してください。
-
ターミナルウィンドウで、これらのコマンドを入力して、 で作成された設定ファイルを使用して AWS IoT Device Client を実行します設定ファイルを作成する。
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json
ターミナルウィンドウに、 AWS IoT Device Client は情報メッセージと、実行時に発生するエラーを表示します。
ターミナルウィンドウにエラーが表示されない場合は、MQTTテストクライアント を確認します。
-
MQTT テストクライアント のサブスクリプションウィンドウで、メッセージトピックに送信された Hello World!
test/dc/pubtopic
メッセージを参照してください。 -
AWS IoT Device Client にエラーが表示されず、MQTTテストクライアント の
test/dc/pubtopic
メッセージに Hello World! が送信されたことがわかった場合、接続は成功しました。 -
ターミナルウィンドウで、
^C
(Ctrl-C) と入力して AWS IoT Device Client を停止します。
AWS IoT Device Client がデフォルトのMQTTメッセージを公開したことを証明したら、 に進むことができますAWS IoT Device Client を使用してカスタムメッセージを公開する。
AWS IoT Device Client を使用してカスタムメッセージを公開する
このセクションの手順では、カスタムMQTTメッセージを作成し、 AWS IoT Device Client を実行して、MQTTテストクライアントが受信して表示できるようにカスタムMQTTメッセージを 1 回発行します。
AWS IoT Device Client のカスタムMQTTメッセージを作成する
Raspberry Pi に接続されているローカルホストコンピュータのターミナルウィンドウで、次の手順を実行します。
AWS IoT Device Client が発行するカスタムメッセージを作成するには
-
ターミナルウィンドウで、
nano
などのテキストエディタを開きます。 -
テキストエディタに、次のJSONドキュメントをコピーして貼り付けます。これは、 AWS IoT Device Client が発行するMQTTメッセージペイロードです。
{ "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
-
テキストエディタの内容を
~/messages/sample-ws-message.json
として保存します。 -
次のコマンドを入力して、作成したメッセージファイルのアクセス許可を設定します。
chmod 600 ~/messages/*
Device AWS IoT Client がカスタムメッセージを送信するために使用する設定ファイルを作成するには
-
ターミナルウィンドウで、 などのテキストエディタで
nano
、既存の AWS IoT Device Client 設定ファイル を開きます~/dc-configs/dc-pubsub-config.json
。 -
samples
オブジェクトが次のようになるように編集します。このファイルの他の部分を変更する必要はありません。"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" -
テキストエディタの内容を
~/dc-configs/dc-pubsub-custom-config.json
として保存します。 -
次のコマンドを実行して、新しい設定ファイルでアクセス許可を設定します。
chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
AWS IoT Device Client を使用してカスタムMQTTメッセージを公開する
この変更はMQTTメッセージペイロードの内容にのみ影響するため、現在のポリシーは引き続き機能します。ただし、MQTTトピック ( publish-topic
の値で定義~/dc-configs/dc-pubsub-custom-config.json
) が変更された場合は、Raspberry Pi が新しいMQTTトピックに発行できるようにiot::Publish
ポリシーステートメントも変更する必要があります。
AWS IoT Device Client からMQTTメッセージを送信するには
-
この手順を実行するときは、ターミナルウィンドウとMQTTテストクライアントを含むウィンドウの両方が表示されていることを確認します。また、MQTTテストクライアントがまだ # トピックフィルターにサブスクライブしていることを確認してください。そうでない場合は、[#] トピックフィルターのサブスクリプションに戻します。
-
ターミナルウィンドウで次のコマンドを入力して、設定ファイルを作成する で作成した設定ファイルを使用する AWS IoT Device Client を実行します。
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json
ターミナルウィンドウに、 AWS IoT Device Client は情報メッセージと、実行時に発生するエラーを表示します。
ターミナルウィンドウにエラーが表示されない場合は、MQTTテストクライアントを確認します。
-
MQTT テストクライアント のサブスクリプションウィンドウで、メッセージトピックに送信されたカスタム
test/dc/pubtopic
メッセージペイロードを参照してください。 -
AWS IoT Device Client にエラーが表示されず、MQTTテストクライアント のメッセージに発行したカスタム
test/dc/pubtopic
メッセージペイロードが表示された場合、カスタムメッセージが正常に発行されました。 -
ターミナルウィンドウで、
^C
(Ctrl-C) と入力して AWS IoT Device Client を停止します。
AWS IoT Device Client がカスタムメッセージペイロードを発行したことを証明したら、 に進むことができますAWS IoT Device Client でメッセージをサブスクライブするデモンストレーション。