AWS 无服务器错误处理,SQS 作为事件源
使用 AWS SQS 作为事件源的错误处理
如果 Amazon SQS 调用失败或超时,消息仍然可见。
Lambda 会一直重试消息,直到成功或队列达到接收限制。
为拒绝的消息设置死信队列是一个好习惯。
需要进行性能测试才能找到适合您操作的解决方案。
AWS SQS 与 Lambda
在 Lambda 函数上,您可以指定超时。
在 SQS 队列上,您可以定义可见性超时。
您还可以定义队列的批次大小,每批次从一条到十条消息。
批次大小会影响您的函数和可见性超时设置。
对于快速处理,更大的批次大小可以提高效率。
对于较长的处理,较小的批次大小可能更好。
使用 AWS SQS 作为事件源的错误处理视频
W3schools.com 与 Amazon Web Services 合作,为我们的学生提供数字培训内容。
使用 AWS SQS 处理错误的工作原理
如果您的函数每秒处理一条消息,则处理 10 条消息的批次需要 10 秒才能完成。
在这种情况下,您可以使用 20 秒的超时。
如果函数每 2 分钟处理一条消息,则处理相同的批次需要 20 分钟才能完成。
由于 Lambda 的最大超时时间为 15 分钟,因此该批次将在未处理所有消息的情况下终止。
未处理的消息将重新出现在队列中。
消息可见性
您必须设置可见性超时,以便为您的 Lambda 函数提供足够的时间来完成消息批次。
当函数被节流时,您可以在可见性超时中提供一些缓冲区,以适应 Lambda 调用重试。
建议将您的可见性超时设置为函数超时的 6 倍。