具有API Gateway代理集成的Lambda中的错误处理

时间:2019-05-14 17:49:24

标签: python aws-lambda aws-api-gateway

据我了解,使用Lambda代理集成时,必须返回statusCodebody才能将任何有意义的错误信息返回给HTTP客户端。

我的python代码如下:

import json
import traceback

def lambda_handler(event, context):

    try:
        result = business_logic()        
        return {
            'statusCode': 200,
            'body': json.dumps(result)    
        }

    except Exception as e:
        error = {
            "type": e.__class__.__name__,
            "message": str(e),
            "traceback": traceback.format_exc()
        }
        return {
            'statusCode': 502,
            'body': json.dumps(error)
        }

我的问题是,我想使用Lambda和Cloudwatch的便捷监视界面(例如能够触发lambda错误),但是由于此代码中的lambda正在处理所有错误并返回值,因此我认为lambda将错误率为0%。

有没有一种替代方法仍然使用代理集成并传递错误信息?

1 个答案:

答案 0 :(得分:0)

我认为,如果您要检查指标,那么检查API Gateway的cloudwatch比检查Lambda更好。

除非您真的真的希望Lambda的cloudwatch监视错误者,否则您可能需要通过非代理集成