我在Lambda中设置了一个Python处理程序,并创建了一个API端点,仅接收POST方法。但我无法弄清楚Lambda应该如何告诉API Gateway任务已成功完成并返回HTTP 200状态码。有人尝试过这条路吗?
我在Lambda中设置了一个Python处理程序,并创建了一个API端点,仅接收POST方法。但我无法弄清楚Lambda应该如何告诉API Gateway任务已成功完成并返回HTTP 200状态码。有人尝试过这条路吗?
raise Exception('notfound')
不要使用“未找到”关键字,选择其他关键字。
然后在 API 网关中,需要将'notfound'
映射到某个响应状态码。我使用 swagger 完成这个操作,以下是如何跟踪'notfound'
的示例:
"/tags/getById": {
"get": {
"summary": "Find the tag by it's ID",
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/Tag"
}
},
"404": {
"description": "No tag found"
}
},
"parameters": [xxxxxxx],
"x-amazon-apigateway-integration": {
"requestTemplates": {xxxxx},
"uri": {xxxxxx},
"responses": {
"default": {
"statusCode": "200"
},
"notfound": {
"statusCode": "404"
}
},
"httpMethod": "POST",
"type": "aws"
}
}
}
您可以通过使用处理程序的返回值来实现您的目标。请参阅官方AWS Lambda Python Model Handler Types。
您还需要正确配置API Gateway
和Integration Response
。您可以在官方API Gateway Introductory Blog post中找到有关如何完成这些工作的更多信息,最重要的是Integration Response
部分。
我想要其他的HTTP错误代码,比如400和500,所以我在这里写了一个答案。请查看详细信息: