2016-06-14 2 views
2

몇 가지 필드가있는 DynamoB 테이블이 있습니다. my_id가 PrimaryKey입니다. API 게이트웨이에서 나는 {my_id} 매개 변수를 취하는 메소드로 응답을 설정했다.AWS API 게이트웨이 - 쿼리가 아무것도 반환하지 않으면 404로 변경합니다.

그런 다음 전달 된 매개 변수를 사용하고 일치하는 모든 필드를 반환하도록 테이블을 쿼리하는 통합 요청 매핑 템플릿이 있습니다.

그렇다면 내가 원하는 방식으로 반환 된 항목을 정리하는 통합 응답 매핑 템플릿이 있습니다.

이 모든 것이 완벽하게 작동합니다.

전달 방법이 전달되는 매개 변수가 테이블의 어떤 것과도 일치하지 않는 경우 어떻게해야 하는지를 알아낼 수 없습니다. 어떻게하면 200 상태에서 404 상태로 바뀌게 될까요?

전달 된 매개 변수가 오류를 발생시키지 않는 것이 무엇인지 알 수 없기 때문에 아무 것도 반환하지 않습니다.

매개 변수가 비어있는 경우 먼저 통합 응답의 매핑 템플릿을 변경하여 응답 상태를 변경해야한다고 생각하는 것 같습니다.

나는 Lambda를 사용하는 사람들과 이러한 유형의 정보를 찾을 수 있지만 Lambda는 사용하지 않습니다. 단지 Dynamodb 테이블과 API 게이트웨이를 사용하고 있습니다.

+0

API 게이트웨이 GET 방법에 대해 404의 메소드 응답을 설정 했습니까? DynamoDB 응답은 통합 응답에서 API 게이트웨이 오류 코드에 매핑 할 수 있어야하는 오류 코드를 반환합니다. [Docs here] (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.Errors.html) – esperluette

+0

문제는 내가 쿼리를 실행 중이며 쿼리에서 아무런 결과도 반환하지 않으면 오류가 없다는 것입니다. . 테이블이 잘못 되었다면 오류가 발생하지만 맵핑 템플리트에 구워 지므로 테이블이 잘못되지는 않습니다. 쿼리 결과를 반환 할 때 오류가 싶습니다. – Ron

+0

문서 (http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html)는 "Count": number 쌍을 포함하는 큰 JSON 응답을 얻는다는 것을 나타냅니다. - JSON을 구문 분석하고 Count 요소가 0인지 확인하고 404 오류에 매핑 할 수있는 것처럼 보입니다. 자세한 내용은 http : // docs를 참조하십시오. .aws.amazon.com/apigateway/latest/developerguide/models-mappings.html – esperluette

답변

0

현재 Api 게이트웨이는 통합 응답의 상태 코드 (여기서는 dynamodb 응답 코드)를 사용하여 상태 코드 매핑을 지원합니다. 유일한 해결 방법은 오류 정규 표현식 http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings-execution-console.html을 사용하여 매핑 할 수있는 다른 오류 메시지를 출력하는 람다 함수를 사용하는 것입니다.

+0

불행히도 이것은 사실입니다. 어쩌면 그들은 언젠가 그것을 바꿀 것입니다. – Ron

관련 문제