Aws lambda 如何丢弃记录?

Aws lambda 如何丢弃记录?,aws-lambda,amazon-kinesis,Aws Lambda,Amazon Kinesis,我向AWS Kinesis发送事件,这些事件由AWS lambda函数处理。 但是,如果lambda抛出一些错误,记录不会被丢弃,并且会被一次又一次地处理,从而阻止处理新记录 我宁愿跳过有问题的记录,消化新的记录。 我不知道该怎么做 lambda函数捕获任何异常,因此不应给出任何执行错误 下面是python中的代码片段 我知道lambda应该在“保留”期间重试(默认为24小时),但我希望放弃并最终记录任何类型的错误 def ProcessKinesisRecords(event, context

我向AWS Kinesis发送事件,这些事件由AWS lambda函数处理。 但是,如果lambda抛出一些错误,记录不会被丢弃,并且会被一次又一次地处理,从而阻止处理新记录

我宁愿跳过有问题的记录,消化新的记录。 我不知道该怎么做

lambda函数捕获任何异常,因此不应给出任何执行错误

下面是python中的代码片段

我知道lambda应该在“保留”期间重试(默认为24小时),但我希望放弃并最终记录任何类型的错误

def ProcessKinesisRecords(event, context):
    body = "ok"   
    response_code = 200
    for record in event['Records']:
        # Kinesis data is base64 encoded so decode here
        try:
            payload = base64.b64decode(record["kinesis"]["data"])
            #...payload processing
        except Exception as e:
            body = e 

    return {"isBase64Encoded": True, "statusCode": response_code, "headers": { "x-custom-header": "headerValue" }, "body": body}

我想我遵循了这一点……但我不知道我做错了什么

嗯,实际上我没有捕捉到所有的异常。 用python

except Exception as e:
无法捕获所有异常:

它不会捕获BaseException或系统退出异常SystemExit、KeyboardInterrupt和GeneratorExit。
这就是它不起作用的原因。

事实上,我没有捕获所有异常。 用python

except Exception as e:
无法捕获所有异常:

它不会捕获BaseException或系统退出异常SystemExit、KeyboardInterrupt和GeneratorExit。 这就是它不起作用的原因