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 中记录错误。
有什么方法可以捕获上述情况下的 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 中记录错误。