翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 テストクライアントが受信して表示する単一のデフォルトの MQTT メッセージを発行します。
AWS IoT Device Client からデフォルトの MQTT メッセージを送信するには
-
この手順を実行する際に、Raspberry Pi に接続されている、ローカルホストコンピュータ上のターミナルウィンドウと、[MQTT test client] (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 test client] (MQTT テストクライアント) を確認します。
-
[MQTT test client] (MQTT テストクライアント) の [Subscriptions] (サブスクリプション) ウィンドウで、
test/dc/pubtopic
メッセージトピックに送信されたHello World!メッセージを確認します。 -
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 メッセージを 1 回発行させて、[MQTT test client] (MQTT テストクライアント) が受信して表示するようにします。
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 トピック (~/dc-configs/dc-pubsub-custom-config.json
の publish-topic
値で定義されたもの) が変更されている場合、Raspberry Pi が新しい MQTT トピックに発行できるように iot::Publish
ポリシーステートメントも変更する必要があります。
AWS IoT Device Client から MQTT メッセージを送信するには
-
この手順を実行する際に、ターミナルウィンドウと、[MQTT test client] (MQTT テストクライアント) のウィンドウが両方とも表示できることを確認します。また、[MQTT test client] (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 test client] (MQTT テストクライアント) を確認します。
-
[MQTT test client] (MQTT テストクライアント) の [Subscriptions] (サブスクリプション) ウィンドウで、
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 を使用したメッセージのサブスクライブのデモンストレーション。