AWS Lambda代理引发异常

2024-06-01 04:37:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个AWS Lambda python3.6函数,用作API网关中API上的Lambda代理。在编写Lambda时,我调用了一个helper函数,如果出现错误,将引发异常。API网关不喜欢这样,因为它期望Lambda的响应中包含“body”、“statusCode”和“headers”,并且在Python中引发异常时,不会提供这些键。在

我想知道是否可以在考虑Lambda代理的情况下引发我的自定义异常,这样我就可以脱离我所在的任何被调用方并从程序中流畅地返回,而不必检查调用方中被调用方的错误。基本上,我想引发一个异常,提供我的状态代码、头和正文,并从Lambda函数中完全返回,API网关会识别错误。在


Tags: lambda函数代码程序helperawsapi代理
2条回答

如果您使用的是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'
            })
        }

在节点.js您可以使用:

callback(null, RESPONSE_NO_SUCCESS);

这里的回答是这样的:

^{pr2}$

这应该如您所愿,您只需查看一下python中回调是如何工作的

相关问题 更多 >