へのデータの取り込み AWS IoT Analytics - AWS IoT Analytics

サポート終了通知: 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 文字を超えることはできません。

  • 大文字と小文字は区別されます。同じペイロード内に fooFOO という名前のフィールドがある場合は重複と見なされます。

たとえば、メッセージペイロードでは {"temp_01": 29}{"_temp_01": 29} は有効ですが、{"temp-01": 29}{"01_temp": 29}{"__temp_01": 29} は無効です。

  1. AWS IoT コンソールの、左のナビゲーションペインで、[Test (テスト)] を選択します。

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

    { "message": "Hello from the IoT console" }
  3. [Publish to topic] (トピックに公開) を選択します。

    AWS IoT コンソールの「テスト」ページのスクリーンショット。

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

BatchPutMessage API の使用

メッセージデータを取得するもう 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\" }" } ]
  2. batch-put-message コマンドを実行します。

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

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

    { "batchPutMessageErrorEntries": [] }