サポート終了通知: 2025 年 12 月 15 日に、 AWS はサポートを終了します AWS IoT Analytics。2025 年 12 月 15 日以降、 AWS IoT Analytics コンソールまたは AWS IoT Analytics リソースにアクセスできなくなります。詳細については、AWS IoT Analytics 「サポート終了」を参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
へのデータの取り込み AWS IoT Analytics
クエリ可能なデータストアにデータを保存するパイプラインにデータをルーティングするチャネルがある場合、メッセージデータを AWS IoT Analyticsに送信する準備ができたことになります。ここでは、 AWS IoT Analyticsにデータを取得する 2 つの方法を示します。メッセージブローカー AWS IoT Analytics または BatchPutMessage
API を使用して AWS IoT メッセージを送信できます。
AWS IoT メッセージブローカーの使用
AWS IoT メッセージブローカーを使用するには、ルールエンジンを使用して AWS IoT ルールを作成します。このルールは、特定のトピックを含むメッセージを にルーティングします AWS IoT Analytics。ただし、このルールでは、まず必要なアクセス許可を付与するロールを作成する必要があります。
IAM ロールの作成
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
ファイルの内容は次のようになります。
{ "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
ファイルの内容は次のようになります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotanalytics:BatchPutMessage", "Resource": [ "arn:aws:iotanalytics:us-west-2:
your-account-number
:channel/mychannel" ] } ] }
AWS IoT ルールの作成
チャネルにメッセージを送信する 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
ルールをチャネル、チャネルをパイプライン、パイプラインをデータストアに結合すると、ルールに一致するすべてのデータがクエリ可能なデータストア 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}
は無効です。
-
AWS IoT コンソール
の、左のナビゲーションペインで、[Test (テスト)] を選択します。 -
MQTT クライアントのページで、[Specify a topic (トピックの指定)] の [Publish (発行)] セクションに「
iot/test
」と入力します。メッセージペイロードセクションで、次の JSON の内容が存在しているか確認し、存在しない場合は入力します。{ "message": "Hello from the IoT console" }
-
[Publish to topic] (トピックに公開) を選択します。
これでメッセージが発行され、前に作成したデータストアにルーティングされます。
BatchPutMessage API の使用
メッセージデータを取得するもう 1 つの方法は、 BatchPutMessage
API コマンドを使用すること AWS IoT Analytics です。この方法では、特定のトピックを持つメッセージをチャネルにルーティングする AWS IoT ルールを設定する必要はありません。ただし、データ/メッセージをチャネルに送信するデバイスが AWS SDK で作成されたソフトウェアを実行できること、または を使用して AWS CLI を呼び出すことができる必要がありますBatchPutMessage
。
-
送信するメッセージが含まれているファイル
messages.json
を作成します (この例では、1 つのメッセージだけが送信されます)。[ { "messageId": "message01", "payload": "{ \"message\": \"Hello from the CLI\" }" } ]
-
batch-put-message
コマンドを実行します。aws iotanalytics batch-put-message --channel-name mychannel --messages file://messages.json --cli-binary-format raw-in-base64-out
エラーがなければ次の出力が表示されます。
{ "batchPutMessageErrorEntries": [] }