【发布时间】:2020-02-14 11:11:38
【问题描述】:
我使用 Python 3.8 和 Lambda 代理 API Gateway 触发器创建了一个 AWS Lambda 函数:
确实可以返回自定义HTTP错误码:
def lambda_handler(event, context):
return {
'statusCode': 400,
'body': json.dumps('This is a bad request!')
}
但是,一些在线示例(例如1、2)只是简单地引发异常以返回带有自定义消息的错误。如果在下面的处理程序上抛出异常,服务器将返回 502,因为响应为 not in the expected format for Proxy Integration:
def lambda_handler(event, context):
raise Exception('This is an exception!')
我认为这些示例依赖于一些集成响应模板并且不使用代理集成。是否可以使用 Lambda 代理实现相同的目标?我想避免在 Lambda 处理程序中全局捕获异常来构建自定义错误响应。
【问题讨论】:
-
引发异常将不起作用,因为它们不符合 API-Lambda 代理集成所需的响应格式。您可以构建自定义响应并将其作为您共享的第一个示例返回。
标签: python amazon-web-services aws-lambda aws-api-gateway