Lambda 모범 사례 - Amazon DynamoDB

Lambda 모범 사례

AWS Lambda 함수는 다른 함수와 격리된 실행 환경인 컨테이너 내에서 실행됩니다. 함수를 처음 실행하면 AWS Lambda에서 컨테이너를 생성하고 함수 코드를 실행하기 시작합니다.

Lambda 함수에는 호출당 한 번 실행되는 핸들러가 있습니다. 핸들러에는 함수에 대한 주요 비즈니스 로직이 포함됩니다. 예를 들어, 4단계: Lambda 함수 생성 및 테스트에 표시된 Lambda 함수에는 DynamoDB 스트림의 레코드를 처리할 수 있는 핸들러가 있습니다.

또한 컨테이너가 생성되고 나서 AWS Lambda가 핸들러를 처음 실행하기 전에 한 번만 실행되는 초기화 코드도 제공할 수 있습니다. 4단계: Lambda 함수 생성 및 테스트에 표시된 Lambda 함수에는 SDK for JavaScript in Node.js를 가져오고 Amazon SNS에 대한 클라이언트를 생성하는 초기화 코드가 있습니다. 이 객체는 핸들러 외부에서 한 번만 정의할 수 있습니다.

함수를 실행한 후, AWS Lambda는 이후 함수 호출에 컨테이너를 재사용하도록 선택할 수 있습니다. 이 경우에, 함수 핸들러에서 초기화 코드에 정의된 리소스를 재사용할 수도 있습니다. (AWS Lambda에서는 컨테이너의 보유 기간 또는 컨테이너의 재사용 여부를 제어할 수 없습니다.)

AWS Lambda를 사용하는 DynamoDB 트리거의 경우 다음 사항이 권장됩니다.

  • AWS 서비스 클라이언트는 핸들러가 아니라 초기화 코드에서 인스턴스화해야 합니다. 이렇게 하면 AWS Lambda에서 기존의 연결을 재사용해 컨테이너의 수명을 정할 수 있습니다.

  • 일반적으로, 연결을 명시적으로 관리하거나 연결 풀링을 구현할 필요가 없습니다. 이 작업은 AWS Lambda에서 수행되기 때문입니다.

DynamoDB 스트림의 Lambda 소비자는 정확히 한 번의 전송을 보장하지 않으며 가끔 중복이 발생할 수 있습니다. 중복 처리로 인해 예상치 못한 문제가 발생하지 않도록 Lambda 함수 코드가 멱등성을 갖도록 하세요.

자세한 내용은 AWS Lambda 개발자 안내서AWS Lambda 함수 작업 모범 사례를 참조하세요.