ステップ 2: AWS IoT Device Client でのメッセージの発行をデモンストレーションする - AWS IoT Core

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

ステップ 2: AWS IoT Device Client でのメッセージの発行をデモンストレーションする

このセクションの手順では、AWS IoT Device Client がデフォルトおよびカスタム MQTT メッセージを送信する方法をデモンストレーションします。

前のステップでこれらの演習用に作成したポリシー内のポリシーステートメントでは、以下のアクションを実行するアクセス許可が Raspberry Pi に付与されます。

  • iot:Connect

    PubSubTestThing という名前のクライアント (AWS IoT Device Client を実行している Raspberry Pi) に接続許可を付与します。

    { "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 test client] (MQTT テストクライアント) が受信して表示する単一のデフォルト MQTT メッセージを発行するようにします。

AWS IoT Device Client からデフォルト MQTT メッセージを送信するには
  1. この手順を実行する際に、Raspberry Pi に接続されている、ローカルホストコンピュータ上のターミナルウィンドウと、[MQTT test client] (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 test client] (MQTT テストクライアント) を確認します。

  3. [MQTT test client] (MQTT テストクライアント) の [Subscriptions] (サブスクリプション) ウィンドウで、test/dc/pubtopic メッセージトピックに送信されたHello World!メッセージを確認します。

  4. AWS IoT Device Client にエラーが表示されず、[MQTT test 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 メッセージを 1 回発行させて、[MQTT test client] (MQTT テストクライアント) が受信して表示するようにします。

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/*
AWS IoT Device 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 トピック (~/dc-configs/dc-pubsub-custom-config.jsonpublish-topic 値で定義されたもの) が変更されている場合、Raspberry Pi が新しい MQTT トピックに発行できるように iot::Publish ポリシーステートメントも変更する必要があります。

AWS IoT Device Client から MQTT メッセージを送信するには
  1. この手順を実行する際に、ターミナルウィンドウと、[MQTT test client] (MQTT テストクライアント) のウィンドウが両方とも表示できることを確認します。また、[MQTT test client] (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 test client] (MQTT テストクライアント) を確認します。

  3. [MQTT test client] (MQTT テストクライアント) の [Subscriptions] (サブスクリプション) ウィンドウで、test/dc/pubtopic メッセージトピックに送信されたカスタムメッセージペイロードを確認します。

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

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

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