

サポート終了通知: 2025 年 12 月 15 日に、 AWS はサポートを終了します AWS IoT Analytics。2025 年 12 月 15 日以降、 AWS IoT Analytics コンソールまたは AWS IoT Analytics リソースにアクセスできなくなります。詳細については、[AWS IoT Analytics 「サポート終了](https://docs.aws.amazon.com/iotanalytics/latest/userguide/iotanalytics-end-of-support.html)」を参照してください。

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

# へのデータの取り込み AWS IoT Analytics
<a name="ingest-data"></a>

クエリ可能なデータストアにデータを保存するパイプラインにデータをルーティングするチャネルがある場合、メッセージデータを AWS IoT Analyticsに送信する準備ができたことになります。ここでは、 AWS IoT Analyticsにデータを取得する 2 つの方法を示します。メッセージブローカー AWS IoT Analytics または `BatchPutMessage` API を使用して AWS IoT メッセージを送信できます。

**Topics**
+ [AWS IoT メッセージブローカーの使用](#iot-message-broker)
+ [BatchPutMessage API の使用](#batchputmessage-api)

## AWS IoT メッセージブローカーの使用
<a name="iot-message-broker"></a>

 AWS IoT メッセージブローカーを使用するには、ルールエンジンを使用して AWS IoT ルールを作成します。このルールは、特定のトピックを含むメッセージを にルーティングします AWS IoT Analytics。ただし、このルールでは、まず必要なアクセス許可を付与するロールを作成する必要があります。

### IAM ロールの作成
<a name="create-iam-role"></a>

 AWS IoT メッセージを AWS IoT Analytics チャネルにルーティングするには、ルールを設定します。ただし、まず、メッセージデータを AWS IoT Analytics チャネルに送信するアクセス許可をそのルールに付与する IAM ロールを作成する必要があります。

次のコマンドを実行してロールを作成します。

```
aws iam create-role --role-name myAnalyticsRole --assume-role-policy-document file://arpd.json
```

`arpd.json` ファイルの内容は次のようになります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

次に、ポリシードキュメントをロールにアタッチします。

```
aws iam put-role-policy --role-name myAnalyticsRole --policy-name myAnalyticsPolicy --policy-document file://pd.json
```

`pd.json` ファイルの内容は次のようになります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iotanalytics:BatchPutMessage",
            "Resource": [
                "arn:aws:iotanalytics:{{us-east-1}}:{{111122223333}}:channel/{{your-channel}}"
            ]
        }
    ]
}
```

------

### AWS IoT ルールの作成
<a name="create-iot-rule"></a>

チャネルにメッセージを送信する AWS IoT ルールを作成します。

```
aws iot create-topic-rule --rule-name analyticsTestRule --topic-rule-payload file://rule.json
```

`rule.json` ファイルの内容は次のようになります。

```
{
    "sql": "SELECT * FROM 'iot/test'",
    "ruleDisabled": false,
    "awsIotSqlVersion": "2016-03-23",
    "actions": [ {
        "iotAnalytics": {
            "channelName": "mychannel",
            "roleArn": "arn:aws:iam::{{your-account-number}}:role/myAnalyticsRole"
        }
    } ]
}
```

`iot/test` をルーティングする必要があるメッセージの MQTT トピックに置き換えます。チャネル名とロールを前のセクションで作成したものに置き換えます。

### への MQTT メッセージの送信 AWS IoT Analytics
<a name="send-mqtt-messages"></a>

ルールをチャネル、チャネルをパイプライン、パイプラインをデータストアに結合すると、ルールに一致するすべてのデータがクエリ可能なデータストア AWS IoT Analytics に流れるようになりました。これをテストするには、 AWS IoT コンソールを使用してメッセージを送信します。

**注記**  
送信先のメッセージペイロード (データ) のフィールド名 AWS IoT Analytics。  
英数字およびアンダースコア (\_) のみを使用することができます。他の特殊文字を使用することはできません。
先頭は、英字または 1 つの下線 (\_) にする必要があります。
ハイフン (-) を含めることはできません。
正規表現では次の通りです: "`^[A-Za-z_]([A-Za-z0-9]*|[A-Za-z0-9][A-Za-z0-9_]*)$`"
255 文字を超えることはできません。
大文字と小文字は区別されます。同じペイロード内に `foo` と `FOO` という名前のフィールドがある場合は重複と見なされます。
たとえば、メッセージペイロードでは `{"temp_01": 29}` や `{"_temp_01": 29}` は有効ですが、`{"temp-01": 29}`、`{"01_temp": 29}` や `{"__temp_01": 29}` は無効です。

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)の、左のナビゲーションペインで、[**Test (テスト)**] を選択します。  
![AWS IoT コンソールの [Monitor] (モニター) ページのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/iotanalytics/latest/userguide/images/choose-test.png)

1. MQTT クライアントのページで、[**Specify a topic (トピックの指定)**] の [**Publish (発行)**] セクションに「**iot/test**」と入力します。メッセージペイロードセクションで、次の JSON の内容が存在しているか確認し、存在しない場合は入力します。

   ```
   {
       "message": "Hello from the IoT console"
   }
   ```

1. **[Publish to topic]** (トピックに公開) を選択します。  
![AWS IoT コンソールの「テスト」ページのスクリーンショット。](http://docs.aws.amazon.com/ja_jp/iotanalytics/latest/userguide/images/publish.png)

   これでメッセージが発行され、前に作成したデータストアにルーティングされます。

## BatchPutMessage API の使用
<a name="batchputmessage-api"></a>

メッセージデータを取得するもう 1 つの方法は、 `BatchPutMessage` API コマンドを使用すること AWS IoT Analytics です。この方法では、特定のトピックを持つメッセージをチャネルにルーティングする AWS IoT ルールを設定する必要はありません。ただし、データ/メッセージをチャネルに送信するデバイスが AWS SDK で作成されたソフトウェアを実行できること、または を使用して AWS CLI を呼び出すことができる必要があります`BatchPutMessage`。

1. 送信するメッセージが含まれているファイル `messages.json` を作成します (この例では、1 つのメッセージだけが送信されます)。

   ```
   [
       { "messageId": "message01", "payload": "{ \"message\": \"Hello from the CLI\" }" }
   ]
   ```

1. `batch-put-message` コマンドを実行します。

   ```
   aws iotanalytics batch-put-message  --channel-name mychannel  --messages file://messages.json --cli-binary-format raw-in-base64-out
   ```

   エラーがなければ次の出力が表示されます。

   ```
   {
       "batchPutMessageErrorEntries": []
   }
   ```