AWS API 게이트웨이 및 람다 함수 (Python)를 통합 유형으로 사용하여 적절한 http 상태 코드 및 오류 메시지를 설정하는 방법을 이해하는 데 어려움을 겪고 있습니다. 나는 간단한 예제와 함께 일하고 있어요AWS API 게이트웨이, 파이썬 람다 및 HTTP 상태
, 여기에 세부 사항 :
람다 기능
def lambda_handler(event, context):
return_json = {}
if event["request-number"] == "":
raise Exception("Error request-number can't be empty")
elif event["request-number"] == "3":
raise Exception("Value not accepted")
else:
return_json = {"service-activated": "TRUE"}
return return_json
API /resourcetest POST
이는 람다와 통합되어 위.
목표 : 메시지 오류 요청 번호를 반환 HTTP 400과 몸은 때 요청 수 = ""비어있을 수 없습니다.
구현 :
- 제작 한 내가 오류를 매핑 한 정규식 람다 오류에서 새로운 방법 응답 (400)
- * 그래서 잡으려고 몸에서 해당 문자열
. 매핑 템플릿 : application/json으로 콘텐츠 유형을 만들었고 내가 사용한 템플릿 (설정 전에 해시 태그가 있지만이 페이지의 형식이 엉망이므로 생략했습니다) :
세트 ($ inputRoot = $ input.path ('$')) { "메시지": $ input.json ('. $ ERRORMESSAGE') 은}
나는 HTTP 상태를 가지고 확인했습니다 방법 응답 400 (나는 그것을 가지고)가 AWS API 게이트웨이 내가 HTTP 400을 가지고 테스트 한 콘솔과 메시지 오류 요청 번호가 비어있을 수 없습니다 통해
테스트 몸에.
내가 HTTP 상태 200 오류 메시지가 제대로 포맷되지 내가 무엇을 가지고하는 것은 우체부와 크롬 플러그인으로 Restlet 클라이언트 및 통해서도 테스트하기로 결정했습니다 : 좋은 내가 원하는 것을 달성
이제 AWS API 콘솔에서 모든 것이 좋고 훌륭합니다. 외부 서비스에서 예상대로 작동하지 않습니다.
비슷한 사람이 있습니까?
감사합니다.
아, 네 말이 맞아. 나는 전개에 대해 생각하지 않고 잘못된 것을 생각해 봤다. Scott 님 감사합니다! – AlessioG
안녕하세요. Alessio –