AWS Lambda와 함께 AWS IoT Events 사용 - AWS Lambda

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

AWS Lambda와 함께 AWS IoT Events 사용

AWS IoT Events는 여러 IoT 센서 및 애플리케이션의 입력을 모니터링하여 이벤트 패턴을 인식합니다. 그런 다음 이벤트가 발생할 때 적절한 조치를 취합니다. AWS IoT Events는 많은 소스에서 JSON 페이로드로 입력을 수신합니다. AWS IoT Events는 단순 이벤트(각 입력이 이벤트를 트리거하는 경우)와 복합 이벤트(이벤트를 트리거하기 위해 여러 입력이 발생해야 함)를 지원합니다.

AWS IoT Events를 사용하려면 장비 또는 프로세스의 상태 시스템 모델인 탐지기 모델을 정의합니다. 상태 이외에도 모델에 대한 입력 및 이벤트를 정의합니다. 또한 이벤트가 발생할 때 수행할 작업을 정의합니다. 다른 AWS 서비스(예: Amazon Connect)를 호출하거나 외부 애플리케이션(예: ERP(엔터프라이즈 리소스 계획))에서 작업을 수행하려는 경우 작업에 Lambda 함수를 사용합니다.

이벤트가 발생하면 AWS IoT Events가 비동기적으로 Lambda 함수를 호출합니다. 이 함수는 탐지기 모델에 대한 정보와 동작을 트리거한 이벤트에 대한 정보를 제공합니다. 다음 예제 메시지 이벤트는 AWS IoT Events 단순 step-by-step 예제의 정의를 기반으로 합니다.

예 AWS IoT Events 메시지 이벤트
{ "event":{ "eventName": "myChargedEvent", "eventTime": 1567797571647, "payload":{ "detector":{ "detectorModelName": "AWS_IoTEvents_Hello_World1567793458261", "detectorModelVersion": "4", "keyValue": "100009" }, "eventTriggerDetails":{ "triggerType": "Message", "inputName": "AWS_IoTEvents_HelloWorld_VoltageInput", "messageId": "64c75a34-068b-4a1d-ae58-c16215dc4efd" }, "actionExecutionId": "49f0f32f-1209-38a7-8a76-d6ca49dd0bc4", "state":{ "variables": {}, "stateName": "Charged", "timers": {} } } } }

Lambda 함수에 전달되는 이벤트에는 다음 필드가 포함됩니다.

  • eventName - 탐지기 모델에서 이 이벤트의 이름입니다.

  • eventTime - 이벤트가 발생한 시간입니다.

  • detector - 탐지기 모델의 이름 및 버전입니다.

  • eventTriggerDetails - 이벤트를 트리거한 입력에 대한 설명입니다.

  • actionExecutionId - 작업의 고유 실행 식별자입니다.

  • state - 이벤트가 발생했을 때 탐지기 모델의 상태입니다.

    • stateName - 탐지기 모델의 상태 이름입니다.

    • timers - 이 상태에서 설정된 모든 타이머입니다.

    • variables - 이 상태에서 설정된 모든 변수 값입니다.

Lambda 함수를 호출하려면 AWS IoT Events 서비스에 대한 권한을 부여해야 합니다. add-permission 명령을 사용하여 권한 설명문을 함수의 리소스 기반 정책에 추가하세요.

aws lambda add-permission --function-name my-function \ --statement-id iot-events --action "lambda:InvokeFunction" --principal iotevents.amazonaws.com

다음 결과가 표시됩니다:

{ "Statement": "{\"Sid\":\"iot-events\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iotevents.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1:123456789012:function:my-function\"}" }

AWS IoT Events에서 Lambda를 사용하는 방법에 대한 자세한 내용은 다른 서비스에서 AWS IoT Events 사용을 참조하세요.