다른 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는 이벤트 생성 서비스에 응답을 반환하지 않아요.
본문
트리거 만들기
트리거를 만드는 가장 쉬운 방법은 Lambda 콘솔을 사용하는 거예요. 콘솔로 트리거를 만들면 Lambda가 함수의 리소스 기반 정책(resource-based policy)에 필요한 권한을 자동으로 추가해요.
Lambda 콘솔로 트리거 만들기
- Lambda 콘솔의 Functions 페이지를 열어요.
- 트리거를 만들려는 함수를 선택해요.
- Function overview 창에서 Add trigger를 선택해요.
- 함수를 호출할 AWS 서비스를 선택해요.
- Trigger configuration 창에서 옵션을 채우고 Add를 선택해요. 함수를 호출하도록 선택한 AWS 서비스에 따라 트리거 구성 옵션이 달라져요.
Lambda 함수를 호출할 수 있는 서비스
다음 표는 Lambda 함수를 호출할 수 있는 서비스 목록이에요.