기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudFront Lambda @Edge 함수를 트리거할 수 있는 이벤트
CloudFront 배포의 각 캐시 동작에 대해 특정 이벤트가 발생할 때 Lambda 함수가 실행되도록 하는 트리거 (연결) 를 최대 4개까지 추가할 수 있습니다. CloudFront CloudFront 다음 다이어그램에 표시된 것처럼 트리거는 네 가지 CloudFront 이벤트 중 하나를 기반으로 할 수 있습니다.
Lambda @Edge 함수를 트리거하는 데 사용할 수 있는 CloudFront 이벤트는 다음과 같습니다.
- 뷰어 요청
-
함수는 최종 사용자로부터 요청을 CloudFront 받으면 요청된 객체가 캐시에 있는지 확인하기 전에 실행됩니다. CloudFront
- 원본 요청
-
이 함수는 요청을 CloudFront 오리진에 전달할 때만 실행됩니다. 요청된 객체가 CloudFront 캐시에 있는 경우 함수는 실행되지 않습니다.
- 원본 응답
-
함수는 오리진으로부터 응답을 CloudFront 받은 후 응답에서 객체를 캐싱하기 전에 실행됩니다. 오리진에서 오류가 반환되는 경우에도 함수는 실행됩니다.
다음과 같은 경우에는 함수가 실행되지 않습니다.
-
요청된 파일이 CloudFront 캐시에 있고 만료되지 않은 경우.
-
오리진 요청 이벤트가 트리거한 함수로부터 응답이 생성되는 경우.
-
- 뷰어 응답
-
요청된 파일을 최종 사용자에게 반환하기 전에 함수가 실행됩니다. 이때 함수는 해당 파일이 이미 CloudFront 캐시에 있는지 여부와 상관없이 실행됩니다.
다음과 같은 경우에는 함수가 실행되지 않습니다.
-
오리진이 400 이상의 HTTP 상태 코드 반환하는 경우
-
사용자 지정 오류 페이지가 반환될 때.
-
최종 사용자 요청 이벤트가 트리거한 함수로부터 응답이 생성되는 경우.
-
HTTP 요청을 HTTPS로 CloudFront 자동 리디렉션하는 경우 (값이 HTTP를 HTTPS로 리디렉션인 뷰어 프로토콜 정책 경우).
-
한 캐시 동작에 여러 트리거를 추가하는 경우, 이를 사용하여 동일한 함수를 실행하거나 트리거마다 다른 함수를 실행할 수 있습니다. 또한 복수의 배포에 동일한 함수를 연결할 수도 있습니다.
참고
CloudFront 이벤트가 Lambda 함수 실행을 트리거하는 경우 함수를 완료해야 계속할 수 있습니다. CloudFront 예를 들어 Lambda 함수가 최종 사용자 요청 이벤트에 의해 CloudFront 트리거되는 경우 CloudFront , Lambda 함수 실행이 완료될 때까지 최종 사용자에게 응답을 반환하거나 요청을 오리진에 전달하지 않습니다. 다시 말해, Lambda 함수를 트리거하는 각 요청은 요청 지연 시간을 증가시키므로 최대한 빨리 함수가 실행되도록 해야 합니다.