아마존을 통한 아마존 로케이션 서비스 이벤트에 대응하기 EventBridge - Amazon Location Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아마존을 통한 아마존 로케이션 서비스 이벤트에 대응하기 EventBridge

EventBridge Amazon은 Amazon Location과 같은 AWS 서비스의 데이터를 사용하여 애플리케이션을 효율적으로 연결하는 서버리스 이벤트 버스입니다. EventBridge Amazon Location에서 이벤트를 수신하고 해당 데이터를 다음과 같은 대상으로 AWS Lambda 라우팅합니다. 데이터를 전송할 대상을 결정하는 라우팅 규칙을 설정하여 실시간으로 대응하는 애플리케이션 아키텍처를 구축할 수 있습니다.

기본적으로 지오펜스 이벤트 (ENTER및 디바이스가 지오펜스 영역에 들어오거나 나가는 EXIT 이벤트) 만 전송 대상으로 전송됩니다. EventBridge 트래커 리소스에 대해 필터링된 모든 위치 업데이트 이벤트를 활성화할 수도 있습니다. 자세한 설명은 트래커의 업데이트 이벤트를 활성화합니다. 섹션을 참조하세요.

자세한 내용은 Amazon EventBridge 사용 설명서의 이벤트 및 이벤트 패턴을 참조하십시오.

트래커의 업데이트 이벤트를 활성화합니다.

기본적으로 Amazon Location은 EXIT 지오펜스 이벤트만 ENTER 전송합니다. EventBridge 트래커에 대해 필터링된 모든 포지션 UPDATE 이벤트를 전송하도록 활성화할 수 있습니다. EventBridge 트래커를 생성하거나 업데이트할 때 이 작업을 수행할 수 있습니다.

예를 들어 를 사용하여 기존 트래커를 업데이트하려면 다음 명령어를 사용할 수 있습니다 (대신 트래커 리소스 이름 사용 MyTracker). AWS CLI

aws location update-tracker --tracker-name MyTracker --event-bridge-enabled

트래커의 포지션 이벤트를 끄려면 API 또는 Amazon Location Service 콘솔을 사용해야 합니다.

Amazon Location의 이벤트 규칙 생성

Amazon Location 이벤트에 대한 응답으로 취해진 조치를 EventBridge 구성하기 위해 이벤트 버스당 최대 300개의 규칙을 생성할 수 있습니다.

예를 들어, 지오펜스 경계 내에서 전화가 감지되면 푸시 알림이 전송되는 지오펜스 이벤트 규칙을 생성할 수 있습니다.

Amazon Location 이벤트에 대한 규칙을 만들려면

다음 값을 사용하여 Amazon Location 이벤트를 기반으로 EventBridge 규칙을 생성합니다.

  • 규칙 유형에서 이벤트 패턴이 있는 규칙을 선택합니다.

  • 이벤트 패턴 상자에 다음 패턴을 추가합니다:

    { "source": ["aws.geo"], "detail-type": ["Location Geofence Event"] }

    다음 패턴을 사용하여 트래커 위치 업데이트 규칙을 생성할 수 있습니다:

    { "source": ["aws.geo"], "detail-type": ["Location Device Position Event"] }

    detail 태그를 추가하여 ENTER 또는 EXIT 이벤트만 선택적으로 지정할 수도 있습니다 (규칙이 트래커 위치 업데이트에 대한 규칙인 경우 한개의 EventType만 존재하므로 필터링할 필요가 없음):

    { "source": ["aws.geo"], "detail-type": ["Location Geofence Event"], "detail": { "EventType": ["ENTER"] } }

    또한 위치 또는 지오펜스의 속성을 기준으로 선택적으로 필터링할 수도 있습니다:

    { "source": ["aws.geo"], "detail-type": ["Location Geofence Event"], "detail": { "EventType": ["ENTER"], "GeofenceProperties": { "Type": "LoadingDock" }, "PositionProperties": { "VehicleType": "Truck" } } }
  • 대상 선택에서 Amazon Location Service로부터 이벤트가 수신될 때 수행할 대상 작업을 선택합니다.

    예를 들어, 이벤트 발생 시 Amazon Simple Notification Service (SNS) 주제를 사용하여 이메일 또는 텍스트 메시지를 보낼 수 있습니다. 먼저 Amazon SNS 콘솔을 사용하여 Amazon SNS 주제를 생성해야 합니다. 자세한 내용은 사용자 알림을 위한 Amazon SNS 사용을 참조하십시오.

주의

이벤트 규칙이 성공적으로 적용되었는지 확인하는 것이 가장 좋습니다. 그렇지 않으면 자동 작업이 예상대로 시작되지 않을 수 있습니다. 이벤트 규칙을 확인하려면 이벤트 규칙의 조건을 시작하십시오. 예를 들어, 장치가 지오펜스 영역에 진입하는 것을 시뮬레이션해 보십시오.

detail-type 섹션을 제외하여 Amazon Location에서 모든 이벤트를 캡처할 수도 있습니다. 예:

{ "source": [ "aws.geo" ] }
참고

동일한 이벤트가 두 번 이상 전송될 수 있습니다. 이벤트 ID를 사용하여 수신한 이벤트의 중복을 제거할 수 있습니다.

Amazon Location Service의 아마존 EventBridge 이벤트 예제

다음은 BatchUpdateDevicePosition 호출로 시작된 지오펜스 진입 이벤트의 예입니다.

{ "version": "0", "id": "aa11aa22-33a-4a4a-aaa5-example", "detail-type": "Location Geofence Event", "source": "aws.geo", "account": "636103698109", "time": "2020-11-10T23:43:37Z", "region": "eu-west-1", "resources": [ "arn:aws:geo:eu-west-1:0123456789101:geofence-collection/GeofenceEvents-GeofenceCollection_EXAMPLE", "arn:aws:geo:eu-west-1:0123456789101:tracker/Tracker_EXAMPLE" ], "detail": { "EventType": "ENTER", "GeofenceId": "polygon_14", "DeviceId": "Device1-EXAMPLE", "SampleTime": "2020-11-10T23:43:37.531Z", "Position": [ -123.12390073297821, 49.23433613216247 ], "Accuracy": { "Horizontal": 15.3 }, "GeofenceProperties": { "ExampleKey1": "ExampleField1", "ExampleKey2": "ExampleField2" }, "PositionProperties": { "ExampleKey1": "ExampleField1", "ExampleKey2": "ExampleField2" } } }

다음은 BatchUpdateDevicePosition 호출로 시작된 지오펜스 퇴장 이벤트의 예입니다.

{ "version": "0", "id": "aa11aa22-33a-4a4a-aaa5-example", "detail-type": "Location Geofence Event", "source": "aws.geo", "account": "123456789012", "time": "2020-11-10T23:41:44Z", "region": "eu-west-1", "resources": [ "arn:aws:geo:eu-west-1:0123456789101:geofence-collection/GeofenceEvents-GeofenceCollection_EXAMPLE", "arn:aws:geo:eu-west-1:0123456789101:tracker/Tracker_EXAMPLE" ], "detail": { "EventType": "EXIT", "GeofenceId": "polygon_10", "DeviceId": "Device1-EXAMPLE", "SampleTime": "2020-11-10T23:41:43.826Z", "Position": [ -123.08569321875426, 49.23766166742559 ], "Accuracy": { "Horizontal": 15.3 }, "GeofenceProperties": { "ExampleKey1": "ExampleField1", "ExampleKey2": "ExampleField2" }, "PositionProperties": { "ExampleKey1": "ExampleField1", "ExampleKey2": "ExampleField2" } } }

다음은 BatchUpdateDevicePosition 호출로 시작된 위치 업데이트 이벤트의 예입니다.

{ "version": "0", "id": "aa11aa22-33a-4a4a-aaa5-example", "detail-type": "Location Device Position Event", "source": "aws.geo", "account": "123456789012", "time": "2020-11-10T23:41:44Z", "region": "eu-west-1", "resources": [ "arn:aws:geo:eu-west-1:0123456789101:tracker/Tracker_EXAMPLE" ], "detail": { "EventType": "UPDATE", "TrackerName": "tracker_2", "DeviceId": "Device1-EXAMPLE", "SampleTime": "2020-11-10T23:41:43.826Z", "ReceivedTime": "2020-11-10T23:41:39.235Z", "Position": [ -123.08569321875426, 49.23766166742559 ], "Accuracy": { "Horizontal": 15.3 }, "PositionProperties": { "ExampleKey1": "ExampleField1", "ExampleKey2": "ExampleField2" } } }