2017-03-07 1 views
0

파이썬 람다 함수와 통합 된 API 게이트웨이에 대한 메서드가 있습니다. 오류 메시지 필드가 정규 표현식 중 하나와 일치하지 않는 파이썬 람다 함수에서 예외가 발생하면 API 게이트웨이에서 500 응답을 반환하고 싶습니다.API 게이트웨이 500 처리되지 않은 예외에 대한 응답

예외가 발생하지 않고 람다가 실패없이 반환하는 경우에만 200을 반환하고자합니다. 200 응답을 줄 것이다 (400) 응답을 (.|\n)*'type':\s*'.*Error'(.|\n)* 일치하지 않는 제기 예외 - 위의 그림에서 설치를

Integration Responses

.

이미 구성된 응답과 일치하지 않는 예외가 발생하면 Python 함수가 성공적으로 반환 될 때 200을 리턴하면서 500을 반환 할 수 있습니까? 방금 예외를 발생시키고 예측 가능한 errorMessage 문자열을 생성 할 수있는 모든 것을 내 코드에 랩핑해야합니까?

편집 :

나는 현재 (.|\n)*의 람다 오류 정규식 (500)에 대한 통합 응답함으로써 '이 달성'입니다. 이것은 처리되지 않은 예외를 500 개의 오류로 잡는 합리적인 방법입니까?

편집 :

그것은 파이썬 함수가 예외없이 반환 할 때이 구성이 500 오류를주고있다 밝혀졌습니다.

Integration Responses 2

나는 (그들은 단지 문서에 따라 ERRORMESSAGE 필드를 확인으로) 정규식의는 실제 예외가 파이썬 기능에 의해 발생하는 경우 일치를 시도하는 람다 오류를 기대. 업데이트 된 시나리오에서 201의 기본 방법으로 되돌아갑니다. 이상하게도, API GW 콘솔 'Test'로 테스트 할 때 400을 반환하지만 다른 곳에서 시도 할 때 500 (500 Integration Response에 정의 된 본문 매핑으로) 500을 제공합니다.

모든 처리되지 않은 예외를 500으로 반환하는 유일한 방법은 내 파이썬 함수에서 return 대신 raise Exception('Success')으로 - 다음 201 람다 오류 정규식 일치 '성공'... 어떤 것이 좋을까? .

답변

1

API 게이트웨이의 오류 응답 처리 메커니즘의 한계를 감안할 때 현재의 접근 방식은 타당합니다.

API 게이트웨이 팀은 오류 처리 지원의 단점을 나타내는 여러 고객으로부터 의견을 받았습니다. 우리는이 문제를 개선하기 위해 적극적으로 노력하고 있으며 앞으로 개선 된 오류 처리 경험을 제공하기를 희망합니다.

+0

훌륭한 소식입니다. 매우 감사합니다. – unclemeat

+0

너무 빨리 말할 수 있습니다. 그것은 예외없이 함수가 반환 될 때조차도 500 응답을 제공하도록 구성한 것처럼 보입니다. 더 많은 정보로 원래 게시물을 업데이트했습니다. – unclemeat

+1

Lambda는 200 개의 오류 메시지에 대해 빈 문자열을 반환합니다. 500 람다 오류 정규식을 (. | \ n) +로 변경하여 적어도 하나의 문자가 필요하고 빈 문자열과 일치하지 않게하십시오. –

관련 문제