Lambda 绑定 SQS 队列时捕获错误

Capturing errors when Lambda bound to SQS queue

有什么方法可以捕获上述情况下的 Lambda 错误吗?

传递到 Lambda 目标的消息包含错误跟踪,但传递到死信队列的消息似乎不包含(只是请求)

因为 SQS 绑定到 Lambda(通过 AWS::Lambda::EventSourceMapping),Lambda 上的执行是同步的,而不是异步的

在同步情况下,Lambda 目的地(如果通过 AWS::Lambda::EventConfig 配置)被忽略

虽然AWS::Lambda::EventSourceMapping支持DestinationConfig,但当源为SQS时不支持

在这种情况下,我处理错误消息的唯一方法是通过 SQS RedrivePolicy 字段 - 但这配置了一个死信队列,而不是目的地(即没有错误跟踪)

在这种情况下有什么方法可以捕获错误跟踪吗?

您可以使用 CloudWatch subscriptions 在场景中捕获 lambda 错误。

如果 CloudWatch 收到与日志组(例如函数名称)和文本过滤器匹配的日志条目,它将向 Lambda 或 Kinesis 引发事件。

您的工作是在 CloudWatch 中设置订阅并在您的 lambda 中记录错误。