AWS IoT Device Client でのメッセージの発行のデモンストレーション - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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メッセージを送信するには
  1. この手順を実行するときは、Raspberry Pi に接続されているローカルホストコンピュータのターミナルウィンドウと、MQTTテストクライアントがあるウィンドウの両方が表示されていることを確認してください。

  2. ターミナルウィンドウで、これらのコマンドを入力して、 で作成された設定ファイルを使用して 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テストクライアント を確認します。

  3. MQTT テストクライアントサブスクリプションウィンドウで、メッセージトピックに送信された Hello World! test/dc/pubtopic メッセージを参照してください。

  4. AWS IoT Device Client にエラーが表示されず、MQTTテストクライアントtest/dc/pubtopicメッセージに Hello World! が送信されたことがわかった場合、接続は成功しました。

  5. ターミナルウィンドウで、 ^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 が発行するカスタムメッセージを作成するには
  1. ターミナルウィンドウで、nano などのテキストエディタを開きます。

  2. テキストエディタに、次のJSONドキュメントをコピーして貼り付けます。これは、 AWS IoT Device Client が発行するMQTTメッセージペイロードです。

    { "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
  3. テキストエディタの内容を ~/messages/sample-ws-message.json として保存します。

  4. 次のコマンドを入力して、作成したメッセージファイルのアクセス許可を設定します。

    chmod 600 ~/messages/*
Device AWS IoT Client がカスタムメッセージを送信するために使用する設定ファイルを作成するには
  1. ターミナルウィンドウで、 などのテキストエディタでnano、既存の AWS IoT Device Client 設定ファイル を開きます~/dc-configs/dc-pubsub-config.json

  2. 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"
  3. テキストエディタの内容を ~/dc-configs/dc-pubsub-custom-config.json として保存します。

  4. 次のコマンドを実行して、新しい設定ファイルでアクセス許可を設定します。

    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メッセージを送信するには
  1. この手順を実行するときは、ターミナルウィンドウとMQTTテストクライアントを含むウィンドウの両方が表示されていることを確認します。また、MQTTテストクライアントがまだ # トピックフィルターにサブスクライブしていることを確認してください。そうでない場合は、[#] トピックフィルターのサブスクリプションに戻します。

  2. ターミナルウィンドウで次のコマンドを入力して、設定ファイルを作成する で作成した設定ファイルを使用する 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テストクライアントを確認します。

  3. MQTT テストクライアントサブスクリプションウィンドウで、メッセージトピックに送信されたカスタムtest/dc/pubtopicメッセージペイロードを参照してください。

  4. AWS IoT Device Client にエラーが表示されず、MQTTテストクライアント のメッセージに発行したカスタムtest/dc/pubtopicメッセージペイロードが表示された場合、カスタムメッセージが正常に発行されました。

  5. ターミナルウィンドウで、 ^C (Ctrl-C) と入力して AWS IoT Device Client を停止します。

AWS IoT Device Client がカスタムメッセージペイロードを発行したことを証明したら、 に進むことができますAWS IoT Device Client でメッセージをサブスクライブするデモンストレーション