Amazon web services 通过API网关从Lambda返回HTTP状态代码
我有一个带有Python处理程序的Lambda设置,我创建了一个API端点,只接收POST方法。我不知道我的Lambda应该如何告诉API网关事情已经成功完成并返回http200状态码。有人尝试过这条路吗?您应该能够通过使用处理程序的返回值来实现您的目标。见官方Amazon web services 通过API网关从Lambda返回HTTP状态代码,amazon-web-services,aws-lambda,aws-api-gateway,Amazon Web Services,Aws Lambda,Aws Api Gateway,我有一个带有Python处理程序的Lambda设置,我创建了一个API端点,只接收POST方法。我不知道我的Lambda应该如何告诉API网关事情已经成功完成并返回http200状态码。有人尝试过这条路吗?您应该能够通过使用处理程序的返回值来实现您的目标。见官方 您还需要使用集成响应正确配置API网关。你可以在官方网站上找到更多关于这方面的信息,最重要的是集成响应部分。我也想要其他http错误代码,比如400和500,所以我在这里写了一个答案。详情请参阅: 在python中,lambda只需执行
您还需要使用集成响应正确配置
API网关
。你可以在官方网站上找到更多关于这方面的信息,最重要的是集成响应部分。我也想要其他http错误代码,比如400和500,所以我在这里写了一个答案。详情请参阅:
在python中,lambda只需执行
raise Exception('notfound')
使用任何其他关键字代替notfound
然后在apigateway中,您需要将'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"
}
}
}