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