DynamoDB 이벤트 소스 매핑

DynamoDB 이벤트 소스 매핑 (DynamoDB event source mapping)

Lambda 이벤트 소스 매핑을 사용해 Lambda 함수가 Amazon DynamoDB 스트림의 레코드를 처리하도록 구성할 수 있어요. 이벤트 소스 매핑은 DynamoDB 스트림에서 레코드를 읽고 배치로 함수를 호출해요.

출처: AWS Lambda 개발자 안내서

본문

DynamoDB 스트림은 테이블에 대한 변경 사항을 시간순으로 기록해요. 이벤트 소스 매핑은 스트림을 폴링하고 함수에 전달하는 이벤트를 생성해요. 이벤트 소스 매핑은 다음을 포함한 여러 매개 변수로 구성할 수 있어요.

  • 배치 크기(Batch size) – 한 번에 함수에 전달되는 레코드 수
  • 배치 창(Batch window) – 레코드를 수집하기 위해 기다리는 최대 시간
  • 시작 위치(Starting position) – 스트림에서 읽기 시작할 위치(예: 최신 또는 트림된 수평선)

DynamoDB 이벤트 소스 매핑 생성 (Creating a DynamoDB event source mapping)

Lambda 콘솔, AWS CLI, AWS SAM을 사용해 DynamoDB 이벤트 소스 매핑을 만들 수 있어요.

콘솔을 사용해 만들기

  1. Lambda 콘솔의 Functions 페이지를 열어요.
  2. 트리거를 추가할 함수를 선택해요.
  3. Add trigger 를 선택하고 트리거 유형으로 DynamoDB 를 선택해요.
  4. 사용할 DynamoDB 테이블을 선택해요.
  5. 설정을 구성하고 Add 를 선택해요.

이벤트 소스 매핑 권한 (Event source mapping permissions)

Lambda가 DynamoDB 스트림에서 읽으려면 실행 역할에 다음 권한이 필요해요.

  • dynamodb:DescribeStream
  • dynamodb:GetRecords
  • dynamodb:GetShardIterator
  • dynamodb:ListStreams

실패 처리 (Handling failures)

DynamoDB 스트림에서 레코드를 처리하지 못하면 Lambda는 레코드를 다시 처리하려고 시도해요. 이벤트 소스 매핑의 최대 재시도 횟수와 관련 동작을 구성할 수 있어요.

더 알아보기 (Learn more)