파이썬 람다 함수와 통합 된 API 게이트웨이에 대한 메서드가 있습니다. 오류 메시지 필드가 정규 표현식 중 하나와 일치하지 않는 파이썬 람다 함수에서 예외가 발생하면 API 게이트웨이에서 500 응답을 반환하고 싶습니다.API 게이트웨이 500 처리되지 않은 예외에 대한 응답
예외가 발생하지 않고 람다가 실패없이 반환하는 경우에만 200을 반환하고자합니다. 200 응답을 줄 것이다 (400) 응답을 (.|\n)*'type':\s*'.*Error'(.|\n)*
일치하지 않는 제기 예외 - 위의 그림에서 설치를
.
이미 구성된 응답과 일치하지 않는 예외가 발생하면 Python 함수가 성공적으로 반환 될 때 200을 리턴하면서 500을 반환 할 수 있습니까? 방금 예외를 발생시키고 예측 가능한 errorMessage 문자열을 생성 할 수있는 모든 것을 내 코드에 랩핑해야합니까?
편집 :
나는 현재 (.|\n)*
의 람다 오류 정규식 (500)에 대한 통합 응답함으로써 '이 달성'입니다. 이것은 처리되지 않은 예외를 500 개의 오류로 잡는 합리적인 방법입니까?
편집 :
그것은 파이썬 함수가 예외없이 반환 할 때이 구성이 500 오류를주고있다 밝혀졌습니다.
나는 (그들은 단지 문서에 따라 ERRORMESSAGE 필드를 확인으로) 정규식의는 실제 예외가 파이썬 기능에 의해 발생하는 경우 일치를 시도하는 람다 오류를 기대. 업데이트 된 시나리오에서 201의 기본 방법으로 되돌아갑니다. 이상하게도, API GW 콘솔 'Test'로 테스트 할 때 400을 반환하지만 다른 곳에서 시도 할 때 500 (500 Integration Response에 정의 된 본문 매핑으로) 500을 제공합니다.
모든 처리되지 않은 예외를 500으로 반환하는 유일한 방법은 내 파이썬 함수에서 return
대신 raise Exception('Success')
으로 - 다음 201 람다 오류 정규식 일치 '성공'... 어떤 것이 좋을까? .
훌륭한 소식입니다. 매우 감사합니다. – unclemeat
너무 빨리 말할 수 있습니다. 그것은 예외없이 함수가 반환 될 때조차도 500 응답을 제공하도록 구성한 것처럼 보입니다. 더 많은 정보로 원래 게시물을 업데이트했습니다. – unclemeat
Lambda는 200 개의 오류 메시지에 대해 빈 문자열을 반환합니다. 500 람다 오류 정규식을 (. | \ n) +로 변경하여 적어도 하나의 문자가 필요하고 빈 문자열과 일치하지 않게하십시오. –