

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

# AWS IoT Device Client を使用したメッセージの発行のデモンストレーション
<a name="iot-dc-testconn-publish"></a>

このセクションの手順では、 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 を使用してデフォルトのメッセージを発行する
<a name="iot-dc-testconn-publish-default"></a>

この手順では、 AWS IoT Device Client を実行して、MQTT **テストクライアントが受信して表示する単一のデフォルトの MQTT** メッセージを発行します。

**AWS IoT Device Client からデフォルトの MQTT メッセージを送信するには**

1. この手順を実行する際に、Raspberry Pi に接続されている、ローカルホストコンピュータ上のターミナルウィンドウと、**[MQTT test client]** (MQTT テストクライアント) のウィンドウが両方とも表示できることを確認します。

1. ターミナルウィンドウで、これらのコマンドを入力して、 で作成された設定ファイルを使用して AWS IoT Device Client を実行します[設定ファイルを作成する](iot-dc-install-configure.md#iot-dc-install-dc-configure-step1)。

   ```
   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 テストクライアント) を確認します。

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

1.  AWS IoT Device Client にエラーが表示されず、**MQTT テストクライアントの**`test/dc/pubtopic`メッセージに *Hello World\!* が送信されたと表示される場合は、接続が成功したことを示しています。

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

 AWS IoT Device Client がデフォルトの MQTT メッセージを発行したことを証明したら、 に進むことができます[AWS IoT Device Client を使用してカスタムメッセージを発行する](#iot-dc-testconn-publish-custom)。

## AWS IoT Device Client を使用してカスタムメッセージを発行する
<a name="iot-dc-testconn-publish-custom"></a>

このセクションの手順では、カスタム MQTT メッセージを作成し、 AWS IoT Device Client を実行して、カスタム MQTT メッセージを 1 回発行させて、**[MQTT test client]** (MQTT テストクライアント) が受信して表示するようにします。

### AWS IoT Device Client のカスタム MQTT メッセージを作成する
<a name="iot-dc-testconn-publish-custom-create"></a>

Raspberry Pi に接続されているローカルホストコンピュータのターミナルウィンドウで、次の手順を実行します。

**AWS IoT Device Client が発行するカスタムメッセージを作成するには**

1. ターミナルウィンドウで、`nano` などのテキストエディタを開きます。

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

   ```
   {
     "temperature": 28,
     "humidity": 80,
     "barometer": 1013,
     "wind": {
       "velocity": 22,
       "bearing": 255
     }
   }
   ```

1. テキストエディタの内容を **\~/messages/sample-ws-message.json** として保存します。

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

   ```
   chmod 600 ~/messages/*
   ```

**Device AWS IoT Client がカスタムメッセージを送信するために使用する設定ファイルを作成するには**

1. ターミナルウィンドウで、 などのテキストエディタで`nano`、既存の AWS IoT Device Client 設定ファイル を開きます**\~/dc-configs/dc-pubsub-config.json**。

1. `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"
   ```

1. テキストエディタの内容を **\~/dc-configs/dc-pubsub-custom-config.json** として保存します。

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

   ```
   chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
   ```

### AWS IoT Device Client を使用してカスタム MQTT メッセージを発行する
<a name="iot-dc-testconn-publish-custom-publish"></a>

この変更は、MQTT メッセージペイロードの*内容*のみに影響するので、現在のポリシーは引き続き機能します。ただし、*MQTT トピック* (`~/dc-configs/dc-pubsub-custom-config.json` の `publish-topic` 値で定義されたもの) が変更されている場合、Raspberry Pi が新しい MQTT トピックに発行できるように `iot::Publish` ポリシーステートメントも変更する必要があります。

**AWS IoT Device Client から MQTT メッセージを送信するには**

1. この手順を実行する際に、ターミナルウィンドウと、**[MQTT test client]** (MQTT テストクライアント) のウィンドウが両方とも表示できることを確認します。また、**[MQTT test client]** (MQTT テストクライアント) のサブスクリプションが、引き続き**[\#]** トピックフィルターであることを確認してください。そうでない場合は、**[\#]** トピックフィルターのサブスクリプションに戻します。

1. ターミナルウィンドウで次のコマンドを入力して、[設定ファイルを作成する](iot-dc-install-configure.md#iot-dc-install-dc-configure-step1) で作成した設定ファイルを使用する 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 テストクライアント) を確認します。

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

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

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

 AWS IoT Device Client がカスタムメッセージペイロードを発行したことを証明したら、 に進むことができます[AWS IoT Device Client を使用したメッセージのサブスクライブのデモンストレーション](iot-dc-testconn-subscribe.md)。