Lambda 함수를 트리거하는 데 사용할 CloudFront 이벤트를 결정하는 방법 - Amazon CloudFront

Lambda 함수를 트리거하는 데 사용할 CloudFront 이벤트를 결정하는 방법

Lambda 함수를 트리거하는 데 사용할 CloudFront 이벤트를 결정할 때 다음 사항을 고려해야 합니다.

CloudFront에서 Lambda 함수가 변경한 객체를 캐싱하는지 여부

CloudFront가 Lambda 함수로 수정된 객체를 캐싱하여 다음에 해당 객체가 요청될 경우 엣지 로케이션의 객체에 CloudFront가 서비스를 제공할 수 있게 하려면 오리진 요청 또는 오리진 응답 이벤트를 사용합니다. 그러면 오리진에 대한 로드가 감소하고, 이후 요청의 지연 시간이 단축되며, 이후 요청에서 Lambda@Edge를 호출하는 비용이 절감됩니다.

예를 들어, 오리진에 의해 반환되는 객체의 헤더를 추가, 제거 또는 변경하고 CloudFront에서 해당 결과를 캐싱하게 하려는 경우 오리진 응답 이벤트를 사용합니다.

모든 요청에 대해 함수를 실행할지 여부

CloudFront가 배포에 대해 수신하는 모든 요청에서 함수를 실행하려는 경우 최종 사용자 요청 또는 최종 사용자 응답 이벤트를 사용합니다. 오리진 요청 및 오리진 응답 이벤트는 요청된 객체가 엣지 로케이션에 캐싱되지 않고 CloudFront가 오리진으로 요청을 전달하는 경우에만 발생합니다.

함수가 캐시 키를 변경하는지 여부

함수가 캐싱의 기준으로 사용되는 값을 변경하게 하려는 경우 최종 사용자 요청 이벤트를 사용합니다. 예를 들어, 함수가 URL을 변경하여 경로에 언어 약자를 포함시키는 경우(예를 들어, 사용자가 드롭다운 목록에서 언어를 선택했기 때문) 최종 사용자 요청 이벤트를 사용합니다.

  • 최종 사용자 요청 내 URL - http://example.com/en/index.html

  • 요청이 독일 내 IP 주소로부터 온 경우의 URL - http://example.com/de/index.html

쿠키 또는 요청 헤더를 기준으로 캐싱하는 경우에도 최종 사용자 요청 이벤트를 사용합니다.

참고

함수가 쿠키 또는 헤더를 변경하는 경우 CloudFront가 요청의 해당 부분을 오리진으로 전달하도록 구성합니다. 자세한 정보는 다음 주제를 참조하십시오.

함수가 오리진으로부터의 응답에 영향을 미치는지 여부

함수가 오리진으로부터의 응답에 영향을 미치는 방식으로 요청을 변경하게 하려는 경우 오리진 요청 이벤트를 사용합니다. 일반적으로 대부분의 최종 사용자 요청 이벤트는 오리진으로 전달되지 않습니다. CloudFront는 이미 엣지 캐시에 저장된 객체를 사용하여 요청에 응답합니다. 함수가 오리진 요청 이벤트를 기준으로 요청을 변경하는 경우 CloudFront가 변경된 오리진 요청에 대한 응답을 캐싱합니다.