使用Kinesis和AWS Lambda如何进行一次跟踪重试,以及一批没有重试?

时间:2019-11-12 04:45:53

标签: aws-lambda amazon-cloudwatch

我可以看到类似的消息

START RequestId: 3fcc8e32-8736-4c9c-ba8e-6c57b97837ff

END RequestId: 3fcc8e32-8736-4c9c-ba8e-6c57b97837ff

但是我知道我的lambda出现错误,导致lambda重试。我想知道是否存在任何默认的cloudwatch指标,或者在重试和不重试的情况下可以寻找哪些cloudwatch日志关键字。

1 个答案:

答案 0 :(得分:1)

AWS Lambda将使用相同的请求ID重试异步调用。您也许可以使用Cloudwatch见解来检查重复的请求ID,以及其中是否有三个。三是异步请求的最大调用数。

更新

CloudWatch insights query将显示Lambda调用,该调用具有多个相同的请求ID。因此,异步调用至少失败了一次。

stats count(*) as requestIdCount by @requestId 
| filter @message like /START RequestId/
| filter requestIdCount > 1

示例输出

# @requestId                           requestIdCount
1 c0d5a65a-7db3-413e-8d1f-4b9da0f21a71 3

Kinesis的情况下,Lambda是同步调用的,因此没有明确标识符可重试sdk的请求。尽管我认为解决方案是,将一个udid添加到写入Kinesis的数据中,然后在Lambda函数的日志中搜索与上面类似的内容。