Amazon web services 使用队列处理异步lambda调用的错误是一种好方法吗?

Amazon web services 使用队列处理异步lambda调用的错误是一种好方法吗?,amazon-web-services,aws-lambda,queue,Amazon Web Services,Aws Lambda,Queue,我有一个Lambda函数,它处理一个针对我们的数据库运行的关键函数。我需要确保这至少运行一次,如果三次后失败,请发送电子邮件。目前,我正在使用一个队列来触发lambda,如果lambda失败三次,消息将被发送到一个死信队列,该队列将处理发送电子邮件 但是当我阅读Lambda的AWS文档时,它说Lambda已经重试了三次。如果是这样,不使用队列,我可以不使用队列从相同的Lambda函数发送电子邮件。这是处理Lambda函数中错误的100%故障保护方法吗?如果不是,使用队列是正确的方法吗 这是处理L

我有一个Lambda函数,它处理一个针对我们的数据库运行的关键函数。我需要确保这至少运行一次,如果三次后失败,请发送电子邮件。目前,我正在使用一个队列来触发lambda,如果lambda失败三次,消息将被发送到一个死信队列,该队列将处理发送电子邮件

但是当我阅读Lambda的AWS文档时,它说Lambda已经重试了三次。如果是这样,不使用队列,我可以不使用队列从相同的Lambda函数发送电子邮件。这是处理Lambda函数中错误的100%故障保护方法吗?如果不是,使用队列是正确的方法吗

这是处理Lambda函数中错误的100%故障保护方法吗

没有

如果不是,使用队列是正确的方法吗

是,如果配置正确

表示如果调用是异步的,它将重试两次。SQS是一个基于投票的系统。Lambda将轮询队列,其所有调用都将是同步的

对于基于民意调查的AWS服务(Amazon Kinesis、Amazon DynamoDB、Amazon 简单队列服务),AWS Lambda轮询流或消息队列 并同步调用Lambda函数

如果要等待消息失败三次,请在源SQS队列中将
maxReceiveCount
属性设置为3。虽然没有明确提到配置为事件源的SQS队列的
maxReceiveCount
,但它也适用。一旦达到
maxReceiveCount
下的阈值,消息将被重定向到配置的DLQ。请记住,您需要在源SQS队列而不是Lambda函数本身上配置DLQ

这是处理Lambda函数中错误的100%故障保护方法吗

没有

如果不是,使用队列是正确的方法吗

是,如果配置正确

表示如果调用是异步的,它将重试两次。SQS是一个基于投票的系统。Lambda将轮询队列,其所有调用都将是同步的

对于基于民意调查的AWS服务(Amazon Kinesis、Amazon DynamoDB、Amazon 简单队列服务),AWS Lambda轮询流或消息队列 并同步调用Lambda函数


如果要等待消息失败三次,请在源SQS队列中将
maxReceiveCount
属性设置为3。虽然没有明确提到配置为事件源的SQS队列的
maxReceiveCount
,但它也适用。一旦达到
maxReceiveCount
下的阈值,消息将被重定向到配置的DLQ。请记住,您需要在源SQS队列上配置DLQ,而不是在Lambda函数本身上配置DLQ。

如果调用是异步的,该怎么办?如果是这样,那么是否需要使用100%故障保护的队列?那么重试行为是不同的。我建议您查看一下我共享的链接,这样您就可以决定什么更适合您的用例如果调用是异步的呢?如果是这样,那么是否需要使用100%故障保护的队列?那么重试行为是不同的。我建议你看看我共享的链接,这样你就可以决定什么更适合你的用例