DynamoDB 스트림 및 트리거 AWS Lambda - Amazon DynamoDB

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

DynamoDB 스트림 및 트리거 AWS Lambda

Amazon DynamoDB는 AWS Lambda 와 통합되므로 DynamoDB 스트림의 이벤트에 자동으로 응답하는 코드인 트리거를 생성할 수 있습니다. 트리거를 사용하면 DynamoDB 테이블의 데이터 수정에 응답하는 애플리케이션을 구축할 수 있습니다.

테이블에서 DynamoDB 스트림을 활성화하면 스트림 Amazon 리소스 이름 (ARN) 을 사용자가 작성한 함수와 연결할 수 있습니다. AWS Lambda 그러면 해당 DynamoDB 테이블에 대한 모든 변형 작업을 스트림의 항목으로 캡처할 수 있습니다. 예를 들어, 테이블의 항목이 수정될 때 새 레코드가 해당 테이블의 스트림에 즉시 나타나도록 트리거를 설정할 수 있습니다.

참고

두 개 이상의 Lambda 함수를 구독할 수 있지만, 하나의 DynamoDB 스트림에 두 개 이상의 Lambda 함수를 사용하는 경우 읽기 제한이 발생할 수 있습니다.

AWS Lambda 서비스는 초당 4번 새 레코드에 대한 스트림을 폴링합니다. 새 스트림 레코드를 사용할 수 있게 되면 Lambda 함수가 동기식으로 호출됩니다. 동일한 DynamoDB 스트림에 최대 2개의 Lambda 함수를 구독할 수 있습니다.

Lambda 함수는 알림을 보내거나 워크플로를 시작하거나 사용자가 지정하는 기타 여러 작업을 수행할 수 있습니다. 각 스트림 레코드를 Amazon S3 File Gateway(Amazon S3)와 같은 영구 스토리지에 간단하게 복사하는 Lambda 함수를 작성하여 테이블의 쓰기 작업에 대한 영구 감사 추적을 만들 수 있습니다. GameScores 테이블에 쓰는 모바일 게임 앱이 있다고 가정해 보겠습니다. GameScores 테이블의 TopScore 속성이 업데이트될 때마다 해당하는 스트림 레코드가 테이블 스트림에 기록됩니다. 그런 다음 이 이벤트는 소셜 미디어 네트워크에 축하 메시지를 게시하는 Lambda 함수를 트리거합니다. 이 함수는 GameScores에 업데이트되지 않거나 TopScore 속성을 수정하지 않는 모든 스트림 레코드를 무시하도록 작성할 수도 있습니다.

함수가 오류를 반환하면 Lambda는 성공적으로 처리되거나 데이터가 만료될 때까지 배치(batch)를 재시도합니다. 또한 더 작은 배치로 재시도하고, 재시도 횟수를 제한하고, 너무 오래된 레코드를 폐기하고, 기타 옵션을 사용하도록 Lambda를 구성할 수 있습니다.

성능 모범 사례에 따라 Lambda 함수는 수명이 짧아야 합니다. 불필요한 처리 지연을 방지하기 위해 복잡한 로직도 실행하지 않아야 합니다. 특히 고속 스트림의 경우 장기 실행 중인 동기식 Lambda보다 비동기식 사후 처리 단계 함수 워크플로를 트리거하는 것이 좋습니다.

여러 계정에서 동일한 Lambda 트리거를 사용할 수 없습니다. AWS DynamoDB 테이블과 Lambda 함수는 모두 동일한 계정에 속해야 합니다. AWS

에 대한 자세한 내용은 개발자 AWS Lambda안내서를 참조하십시오.AWS Lambda