我正在编写一个 AWS Lambda Python 3.6 函数,用作 API Gateway 中我的 API 上的 Lambda 代理。在编写 Lambda 时,我调用一个辅助函数,如果出现错误,则会引发异常。 API Gateway 不喜欢这样,因为它期望 Lambda 的响应中包含“body”、“statusCode”和“headers”,而当 Python 中引发异常时,不会提供这些键。
我想知道是否可以在考虑到 Lambda 代理的情况下引发我的自定义异常,以便我可以摆脱我所在的任何被调用者并从程序中流畅地返回,而不必检查来自被调用者的错误调用者。基本上,我想引发异常,提供状态代码、 header 和正文,并通过 API Gateway 识别错误从 Lambda 函数完全返回。
最佳答案
如果您使用 Lambda 代理集成,则您有责任返回正确的响应,无论是成功还是异常。
您可以通过捕获异常来做到这一点。
def handler(event, context):
try:
return {
'statusCode': 200,
'body': json.dumps({
'hello': 'world'
})
}
except BadRequestError:
return {
'statusCode': 400,
'body': json.dumps({
'error': 'Bad Request Error'
})
}
except:
return {
'statusCode': 500,
'body': json.dumps({
'error': 'Internal Server Error'
})
}
关于python - AWS Lambda 代理引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47899753/