本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
位置
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-namemytracker
{ "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" } ] }
另請參閱
-
在《Amazon Location Service 開發人員指南》中的什麼是 Amazon Location Service?。