当前位置: 首页 > 知识库问答 >
问题:

如何丢弃记录?

任飞鸣
2023-03-14

我将事件发送到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}

我想我遵循了lambda重试...但我不明白我做错了什么

共有1个答案

万楷
2023-03-14

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

except Exception as e:

没有捕获所有异常:在Python中,除了:和除了异常之间的区别为e:

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

 类似资料:
  • 错误:getMore命令失败:{“operationtime”:Timestamp(1547144095,335),“ok”:0,“errmsg”:“未能在$convert中解析objectId”,没有onError值:>解析到OID的字符串长度无效,预期为24,但找到0“,”code“:241,”codename“:”conversionfailure“,”$clustertime“:{”clu

  • 除了前一节介绍的权重衰减以外,深度学习模型常常使用丢弃法(dropout)[1] 来应对过拟合问题。丢弃法有一些不同的变体。本节中提到的丢弃法特指倒置丢弃法(inverted dropout)。 方法 回忆一下,“多层感知机”一节的图3.3描述了一个单隐藏层的多层感知机。其中输入个数为4,隐藏单元个数为5,且隐藏单元$h_i$($i=1, \ldots, 5$)的计算表达式为 $$h_i = \p

  • 问题内容: 我有以下代码片段: 当我输入以下内容时: 结果是: 怎么来的?我如何保留评论? 编辑 :我不在乎使用的确切xml库,但是,我应该能够对标记进行粘贴的更改。不幸的是,lxml似乎不允许这样做(而且我无法使用正确的名称空间操作) 问题答案: 您不能使用,因为它的解析器会忽略注释(顺便说一下,这对于xml解析器来说是可以接受的行为)。但是,如果您使用(兼容)lxml库,则可以使用它,它允许您

  • 这个问题只是为了让我理解这个概念。空值怎么能转换成(可丢弃的)?null不是一个类,对吗?这个问题可能很愚蠢。 我知道:

  • 我需要对某个异步方法进行fire-and-forget调用。我意识到VS建议我可以将调用设置为丢弃,IDE警告就会消失。但我不确定当和discard一起使用时,是否仍然没有等待该调用。是吗?

  • 我正在通过、和进行实时视频处理。 我已经在下面添加了核心代码。 驱动此操作的代码如下所示: