CloudFront Lambda @Edge 함수를 트리거할 수 있는 이벤트 - 아마존 CloudFront

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CloudFront Lambda @Edge 함수를 트리거할 수 있는 이벤트

CloudFront 배포의 각 캐시 동작에 대해 특정 이벤트가 발생할 때 Lambda 함수가 실행되도록 하는 트리거 (연결) 를 최대 4개까지 추가할 수 있습니다. CloudFront CloudFront 다음 다이어그램에 표시된 것처럼 트리거는 네 가지 CloudFront 이벤트 중 하나를 기반으로 할 수 있습니다.


					통합되는 Lambda  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 함수를 트리거하는 각 요청은 요청 지연 시간을 증가시키므로 최대한 빨리 함수가 실행되도록 해야 합니다.