Error handling 使用bref编写的SQS工作程序如何发出重试信号?

Error handling 使用bref编写的SQS工作程序如何发出重试信号?,error-handling,aws-lambda,amazon-sqs,bref,Error Handling,Aws Lambda,Amazon Sqs,Bref,设置batchSize:1之后,工作进程应如何表示成功,以及应如何表示临时失败/请求重试?我读过,但它显然没有涵盖自定义运行时,也不清楚发生了什么,也没有谈到SQS。我怀疑仅仅抛出一个异常可能就足够了,但我不知道Lambda的信号是什么 像这样的教程没有提到这一点。它讨论了maxReceiveCount:3,但没有讨论如何让SQS稍后重试。我不确定自定义运行时,但在Nodejs中,如果您只是抛出一个错误,则该消息在SQS中可用,如果没有抛出错误,它将从SQS中删除 在maxRetryCount之

设置
batchSize:1
之后,工作进程应如何表示成功,以及应如何表示临时失败/请求重试?我读过,但它显然没有涵盖自定义运行时,也不清楚发生了什么,也没有谈到SQS。我怀疑仅仅抛出一个异常可能就足够了,但我不知道Lambda的信号是什么


像这样的教程没有提到这一点。它讨论了
maxReceiveCount:3
,但没有讨论如何让SQS稍后重试。

我不确定自定义运行时,但在Nodejs中,如果您只是抛出一个错误,则该消息在SQS中可用,如果没有抛出错误,它将从SQS中删除

maxRetryCount
之后为sqs配置死信队列,以便您的消息在重试后转到DLQ。修复故障原因后,可以使用另一个lambda或cli将消息从DLQ移动到主SQS


SQS不会重试,因为lambda会从SQS进行长轮询。

根据bref维护人员的说法:

嘿,是的,就是这样:在处理程序中抛出一个异常,然后让它冒泡到Bref(这将冒泡到Lambda,然后是SQS)


“如果您只是抛出一个错误,那么在没有抛出错误的情况下,该消息在SQS中可用,它将从SQS中删除。”对,这就是问题:在自定义运行时如何做到这一点?在任何运行时,我认为如果我们抛出错误,Lambda都应该处理它。你可以做一个小POC。这个“小POC”就是这个问题的答案。。。我发现Lambda很难调试。