CloudFront에서 Lambda@Edge 함수로 인해 발생하는 500, 502 및 503 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

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 설계 모범 사례

AWS 공식
AWS 공식업데이트됨 2년 전