위치 - 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 참조DeviceId의 섹션을 참조하세요. API

대체 템플릿 지원: 예

latitude

디바이스 위치의 위도를 나타내는 double 값으로 평가되는 문자열입니다.

대체 템플릿 지원: 예

longitude

디바이스 위치의 경도를 나타내는 double 값으로 평가되는 문자열입니다.

대체 템플릿 지원: 예

roleArn

Amazon Location Service 도메인에 대한 액세스를 허용하는 IAM 역할입니다. 자세한 내용은 요구 사항 단원을 참조하십시오.

timestamp

위치 데이터가 샘플링된 시간입니다. 기본값은 MQTT 메시지가 처리된 시간입니다.

timestamp 값은 다음 두 값으로 구성됩니다.

  • value: 긴 Epoch 시간 값을 반환하는 표현식입니다. time_to_epoch(String, String) 함수를 사용하여 메시지 페이로드에 전달된 날짜 또는 시간 값에서 유효한 타임스탬프를 만들 수 있습니다. 대체 템플릿 지원: 예.

  • unit: (선택 사항) value에 설명된 표현식에서 기인하는 타임스탬프 값의 정밀도입니다. 유효한 값: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. 기본값은 MILLISECONDS입니다. 대체 템플릿 : API 및 AWS CLI 만 지원합니다.

trackerName

위치가 업데이트되는 Amazon Location의 추적기 리소스 이름입니다. 자세한 정보는 Amazon Location Service 개발자 안내서추적기를 참조하세요.

대체 템플릿 : API 및 AWS CLI 만 지원

예시

다음 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-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" } ] }

다음 사항도 참조하세요.

  • Amazon Location Service Developer Guide(Amazon Location Service 개발자 안내서)의 What is Amazon Location Service?(Amazon Location Service란 무엇인가요?)