位置 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

位置

Location (location) (位置) 動作會將您的地理位置資料傳送至 Amazon Location Service

要求

此規則動作具有下列需求:

  • AWS IoT 可以擔任執行geo:BatchUpdateDevicePosition操作IAM的角色。如需詳細資訊,請參閱授予 AWS IoT 規則所需的存取權

    在 AWS IoT 主控台中,您可以選擇或建立允許 AWS IoT 執行此規則動作的角色。

參數

使用此動作建立 AWS IoT 規則時,您必須指定下列資訊:

deviceId

提供位置資料的裝置唯一 ID。如需詳細資訊,請參閱 DeviceId Amazon Location Service API參考 中的

支援替代範本:是

latitude

此字串評估為雙精確度值,該值代表裝置位置的緯度。

支援替代範本:是

longitude

此字串評估為雙精確度值,該值代表裝置位置的經度。

支援替代範本:是

roleArn

允許存取 Amazon Location Service 網域IAM的角色。如需詳細資訊,請參閱要求

timestamp

對位置資料進行取樣的時間。預設值是處理MQTT訊息的時間。

timestamp 值包含以下兩個值:

  • value:傳回一個很長的 Epoch 時間值的表達式。您可使用 time_to_epoch(String, String) 函數,從訊息承載中傳遞的日期或時間建立有效的時間戳記。支援替代範本:是。

  • unit:(選擇性) value 中所述運算式產生的 timestamp 值的精確度。有效值:SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS。預設值為 MILLISECONDS。 AWS CLI 僅支援替代範本 : API和 。

trackerName

在已更新位置的 Amazon Location 中的追蹤器資源名稱。如需詳細資訊,請參閱《Amazon Location Service 開發人員指南》中的追蹤器

AWS CLI 僅支援替代範本: API和

範例

下列JSON範例定義 AWS IoT 規則中的位置動作。

{ "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 規則中使用替代範本。

{ "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-historyCLI命令來驗證 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" } ] }

另請參閱