다른 AWS 서비스의 이벤트로 Lambda 호출하기

다른 AWS 서비스의 이벤트로 Lambda 호출하기 (Invoking Lambda with events from other AWS services)

일부 AWS 서비스는 *트리거(trigger)*를 사용해 Lambda 함수를 직접 호출할 수 있어요. 이 서비스들은 이벤트를 Lambda로 밀어 넣고, 지정된 이벤트가 발생하면 함수가 즉시 호출돼요. 트리거는 개별 이벤트와 실시간 처리에 적합해요. Lambda 콘솔에서 트리거를 만들면 콘솔이 해당 AWS 서비스와 상호작용해서 그 서비스에 이벤트 알림을 구성해요. 트리거는 실제로 Lambda가 아니라 이벤트를 생성하는 서비스에 의해 저장되고 관리돼요.

이벤트는 JSON 형식으로 구조화된 데이터예요. JSON 구조는 이를 생성하는 서비스와 이벤트 유형에 따라 달라지지만, 모두 함수가 이벤트를 처리하는 데 필요한 데이터를 포함해요.

이벤트 주도 호출 외에도 Amazon EC2, 자체 관리 Apache Kafka, Kubernetes와 함께 Lambda를 사용할 수 있어요.

함수는 여러 트리거를 가질 수 있어요. 각 트리거는 함수를 독립적으로 호출하는 클라이언트처럼 작동하며, Lambda가 함수에 전달하는 각 이벤트에는 단 한 개의 트리거의 데이터만 담겨 있어요. Lambda는 이벤트 문서를 객체로 변환해 함수 핸들러에 전달해요.

서비스에 따라 이벤트 주도 호출은 동기식(synchronous) 또는 비동기식(asynchronous)일 수 있어요.

  • 동기식 호출에서는 이벤트를 생성하는 서비스가 함수의 응답을 기다려요. 그 서비스가 함수가 응답에서 반환해야 할 데이터를 정의해요. 서비스는 오류 시 재시도 여부 같은 오류 전략을 제어해요.
  • 비동기식 호출에서는 Lambda가 이벤트를 함수로 전달하기 전에 큐에 넣어요. Lambda가 이벤트를 큐에 넣으면 이벤트를 생성한 서비스에 즉시 성공 응답을 보내요. 함수가 이벤트를 처리한 뒤에 Lambda는 이벤트 생성 서비스에 응답을 반환하지 않아요.

출처: AWS Lambda 개발자 안내서

본문

트리거 만들기

트리거를 만드는 가장 쉬운 방법은 Lambda 콘솔을 사용하는 거예요. 콘솔로 트리거를 만들면 Lambda가 함수의 리소스 기반 정책(resource-based policy)에 필요한 권한을 자동으로 추가해요.

Lambda 콘솔로 트리거 만들기

  1. Lambda 콘솔의 Functions 페이지를 열어요.
  2. 트리거를 만들려는 함수를 선택해요.
  3. Function overview 창에서 Add trigger를 선택해요.
  4. 함수를 호출할 AWS 서비스를 선택해요.
  5. Trigger configuration 창에서 옵션을 채우고 Add를 선택해요. 함수를 호출하도록 선택한 AWS 서비스에 따라 트리거 구성 옵션이 달라져요.

Lambda 함수를 호출할 수 있는 서비스

다음 표는 Lambda 함수를 호출할 수 있는 서비스 목록이에요.

서비스 호출 방법
Amazon Managed Streaming for Apache Kafka 이벤트 소스 매핑
Self-managed Apache Kafka 이벤트 소스 매핑
Amazon API Gateway 이벤트 주도, 동기식 호출
AWS CloudFormation 이벤트 주도, 비동기식 호출
Amazon CloudWatch Logs 이벤트 주도, 비동기식 호출
AWS CodeCommit 이벤트 주도, 비동기식 호출
AWS CodePipeline 이벤트 주도, 비동기식 호출
Amazon Cognito 이벤트 주도, 동기식 호출
AWS Config 이벤트 주도, 비동기식 호출
Connect Customer 이벤트 주도, 동기식 호출
Amazon DocumentDB 이벤트 소스 매핑
Amazon DynamoDB 이벤트 소스 매핑
Elastic Load Balancing (Application Load Balancer) 이벤트 주도, 동기식 호출
EventBridge 이벤트 주도, 비동기식 호출(이벤트 버스·규칙), 동기식 또는 비동기식 호출(파이프)
Amazon EventBridge Scheduler 이벤트 주도(시간 기반), 비동기식 호출
AWS IoT 이벤트 주도, 비동기식 호출
Amazon Kinesis 이벤트 소스 매핑
Amazon Data Firehose 이벤트 주도, 동기식 호출
Amazon Lex 이벤트 주도, 동기식 호출
Amazon MQ 이벤트 소스 매핑
Amazon Simple Email Service 이벤트 주도, 비동기식 호출
Amazon Simple Notification Service 이벤트 주도, 비동기식 호출
Amazon Simple Queue Service 이벤트 소스 매핑
Amazon Simple Storage Service (Amazon S3) 이벤트 주도, 비동기식 호출
Amazon Simple Storage Service Batch 이벤트 주도, 동기식 호출
Secrets Manager 시크릿 순환(rotation)
AWS Step Functions 이벤트 주도, 동기식 또는 비동기식 호출
Amazon VPC Lattice 이벤트 주도, 동기식 호출

더 알아보기 (Learn more)