ロケーション - AWS IoT Core

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

ロケーション

Location (location) アクションによって、地理的位置データを Amazon Location Service に送信します。

要件

このルールアクションには、以下の要件があります。

  • geo:BatchUpdateDevicePosition オペレーションを実行するために が引き受け AWS IoT ることができる IAM ロール。詳細については、「必要なアクセスを AWS IoT ルールに付与する」を参照してください。

    AWS IoT コンソールでは、 がこのルールアクションを実行 AWS IoT することを許可するロールを選択または作成できます。

パラメータ

このアクションで AWS IoT ルールを作成するときは、次の情報を指定する必要があります。

deviceId

位置データを提供するデバイスの一意の ID。詳細については、Amazon Location Service API リファレンスの「DeviceId」を参照してください。

置換テンプレートをサポート: はい

latitude

デバイスの位置の緯度を表す double 値として評価される文字列。

置換テンプレートをサポート: はい

longitude

デバイスの位置の経度を表す double 値として評価される文字列。

置換テンプレートをサポート: はい

roleArn

Amazon Location Service ドメインへのアクセスを許可する IAM ロール。詳細については、「要件」を参照してください。

timestamp

位置データがサンプリングされた時刻。デフォルト値は MQTT メッセージが処理された時間です。

timestamp 値は、次の 2 つの値で構成されます。

  • value: 長いエポック時間の値を返す式。time_to_epoch(String, String) 関数を使用して、メッセージペイロードで渡される日付または時刻の値から有効なタイムスタンプを作成できます。置換テンプレートのサポート: はい

  • unit (オプション): value で説明されている式の結果として生じるタイムスタンプ値の精度。有効な値: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS。デフォルトはMILLISECONDSです。代替テンプレート をサポート: API および AWS CLI のみ。

trackerName

Location が更新される Amazon Location トラッカーリソースの名前。詳細については、Amazon Location Service デベロッパーガイドの「トラッカー」を参照してください。

代替テンプレートをサポート: API および AWS CLI のみ

次の JSON 例では、 AWS IoT ルールで Location アクションを定義します。

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "location": { "roleArn": "arn:aws:iam::123454962127:role/service-role/ExampleRole", "trackerName": "MyTracker", "deviceId": "001", "sampleTime": { "value": "${timestamp()}", "unit": "MILLISECONDS" }, "latitude": "-12.3456", "longitude": "65.4321" } } ] } }

次の JSON の例では、 AWS IoT ルール内の置換テンプレートを使用して Location アクションを定義します。

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "location": { "roleArn": "arn:aws:iam::123456789012:role/service-role/ExampleRole", "trackerName": "${TrackerName}", "deviceId": "${DeviceID}", "timestamp": { "value": "${timestamp()}", "unit": "MILLISECONDS" }, "latitude": "${get(position, 0)}", "longitude": "${get(position, 1)}" } } ] } }

次の MQTT ペイロードの例では、上記の例の置換テンプレートがデータにアクセスする方法を示しています。get-device-position-history CLI コマンドを使用して、MQTT ペイロードデータがロケーショントラッカーに配信されていることを確認できます。

{ "TrackerName": "mytracker", "DeviceID": "001", "position": [ "-12.3456", "65.4321" ] }
aws location get-device-position-history --device-id 001 --tracker-name mytracker
{ "DevicePositions": [ { "DeviceId": "001", "Position": [ -12.3456, 65.4321 ], "ReceivedTime": "2022-11-11T01:31:54.464000+00:00", "SampleTime": "2022-11-11T01:31:54.308000+00:00" } ] }

以下も参照してください。