AWS Lambda@Edge 함수를 Amazon CloudFront 배포와 연결했습니다. 이제 500, 502 또는 503 오류가 발생합니다. 이 오류를 해결하려면 어떻게 해야 합니까?
간략한 설명
Lambda@Edge 500, 502 및 503 오류는 다음을 나타냅니다.
-
HTTP 500 상태 코드는 Lambda 함수가 실행 오류를 반환했음을 나타냅니다.
-
HTTP 502 상태 코드는 Lambda 함수 응답이 잘못 형성되었거나 유효하지 않은 콘텐츠를 포함했음을 나타냅니다.
-
HTTP 503 상태 코드는 Lambda 서비스 할당량(이전의 ‘한도’)으로 인해 CloudFront가 조절되었음을 나타냅니다.
오류의 원인 및 문제 해결 방법은 다음 섹션을 참조하세요.
해결 방법
Lambda@Edge 함수에서 500 오류 반환
CloudFront가 Lambda로부터 응답을 받지 못하면 500 실행 오류가 발생합니다. 이는 함수에 처리되지 않은 예외가 있거나, 코드에 오류가 있거나, 지원되지 않는 실행 환경이기 때문에 발생합니다.
Lambda@Edge에서 생성한 500 오류를 해결하려면 Lambda 함수에 대한 로깅 문을 추가하여 코드를 디버깅해야 합니다. 자세한 내용은 Four Steps for Debugging your Content Delivery on AWS를 참조하고 I – Execution Errors의 정보를 검토하세요. 이러한 로깅 문은 CloudFront 함수의 실행을 모니터링하는 CloudWatch 로그 파일에 메시지를 작성합니다. CloudWatch 로그 파일에서 이러한 문을 검토하여 함수가 올바르게 작동하는지 확인할 수 있습니다.
자세한 내용은 Node.js의 Lambda 함수 오류 및 Python의 Lambda 함수 오류를 참조하세요.
Lambda@Edge 함수에서 502 오류 반환
함수가 실행된 후 CloudFront는 Lambda로부터 응답을 수신합니다. 응답의 객체 구조가 Lambda@Edge 이벤트 구조를 준수하지 않는 경우 502 오류가 반환됩니다. 응답에 유효하지 않은 헤더나 유효하지 않은 다른 필드가 포함된 경우에도 502 오류가 반환됩니다.
Lambda@Edge에서 생성된 502 오류를 해결하려면 Lambda @Edge 함수에서 다음과 같은 일반적인 문제를 확인하세요.
- 반환된 JSON 객체
- 필수 필드 누락
- 응답에 포함된 유효하지 않은 객체
- 추가 또는 업데이트가 허용하지 않거나 읽기 전용인 헤더
- 최대 본문 크기 초과
- 유효하지 않은 문자 또는 값
자세한 내용은 Lambda@Edge 함수 테스트 및 디버깅 및 엣지 함수에 대한 제한 사항을 참조하세요.
Lambda@Edge 함수에서 503 오류 반환
Lambda 서비스는 각 리전의 실행을 조절하며 할당량을 초과하는 경우 503 오류를 반환합니다.
503 오류를 해결하려면 Lambda@Edge CloudWatch 지표 및 로그 파일에서 다음과 같은 일반적인 문제를 확인하세요.
자세한 내용은 Lambda@Edge 할당량을 참조하세요.
참고: CloudFront가 Lambda 함수를 실행할 때 생성된 로그 파일을 확인하려면 올바른 리전에서 CloudWatch 로그 파일을 검토해야 합니다.
관련 정보
Lambda@Edge 설계 모범 사례