

# API Gateway API를 사용한 Lambda 오류 처리
<a name="services-apigateway-errors"></a>

API Gateway는 모든 호출 및 함수 오류를 내부 오류로 처리합니다. Lambda API가 호출 요청을 거부하면 API Gateway는 500 오류 코드를 반환합니다. 함수가 실행되지만 오류를 반환하거나 잘못된 형식으로 응답을 반환하는 경우 API Gateway에서 502를 반환합니다. 두 경우 모두 API Gateway의 응답 본문은 `{"message": "Internal server error"}`입니다.

**참고**  
API Gateway는 Lambda 호출을 다시 시도하지 않습니다. Lambda가 오류를 반환하면 API Gateway는 클라이언트에 오류 응답을 반환합니다.

다음 예제에서는 함수 오류가 발생해 API Gateway에서 502가 반환된 요청에 대한 X-Ray 추적 맵을 보여 줍니다. 클라이언트는 제네릭 오류 메시지를 수신합니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/tracemap-apig-502.png)


오류 응답을 사용자 지정하려면 코드에서 오류를 포착하고 필요한 형식으로 응답을 지정해야 합니다.

**Example [index.mjs](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/nodejs-apig/function/index.mjs) – 오류 형식 지정**  

```
var formatError = function(error){
  var response = {
    "statusCode": error.statusCode,
    "headers": {
      "Content-Type": "text/plain",
      "x-amzn-ErrorType": error.code
    },
    "isBase64Encoded": false,
    "body": error.code + ": " + error.message
  }
  return response
}
```

API Gateway는 이 응답을 사용자 지정 상태 코드 및 본문을 사용한 HTTP 오류로 변환합니다. 오류를 처리했기 때문에 추적 맵에서 함수 노드는 녹색입니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/lambda/latest/dg/images/tracemap-apig-404.png)
