首页 > 解决方案 > 使用 Kinesis 和 AWS lambda 如何跟踪重试以及批次何时重试?

问题描述

我可以看到类似的消息

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

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

但我知道我的 lambda 中有错误导致 lambda 重试。我想知道是否有任何默认的 cloudwatch 指标或我们可以在重试和重试失败的情况下寻找哪些 cloudwatch 日志关键字。

标签: aws-lambdaamazon-cloudwatch

解决方案


AWS Lambda 将使用相同的请求 ID 来重试异步调用。您可以使用 Cloudwatch 洞察力检查重复的请求 ID 以及是否存在三个。三是异步请求的最大调用次数。

更新

CloudWatch 洞察查询将显示具有多个相同请求 ID 的 Lambda 调用。因此,至少失败一次的异步调用。

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 重试了哪个请求。虽然我认为解决方案是在写入 Kinesis 的数据中添加一个 udid,然后在 Lambda 函数的日志中搜索与上述类似的内容。


推荐阅读