获取事件的延迟为1-3天。

0

【以下的问题经过翻译处理】 配置: DynamoDB流(删除事件-TTL 90分钟)=> lambda =>Event Bridge=> Kinesis Firehose(直接PUT的传输流=> S3存储桶(firehose目的地)=> SQS(基于对象创建触发)=> lambda X

我们发现lambda函数X被调用的延迟为1-3天,有些情况下我们甚至没有看到它被调用。没有错误,没有在kinesis错误日志中发现错误。看起来对象在s3存储桶中延迟创建。最大重试时间为24小时。什么地方可能会出现延迟?有什么最好的解决方法吗?

profile picture
专家
已提问 4 个月前29 查看次数
1 回答
0

【以下的回答经过翻译处理】 你没有说明相对于什么来进行延迟计算。是相对于从DDB移除条目的时间吗?

延迟可能会出现在DynamoDB Streams中。根据文档,项目将在TTL中定义的时间后最多删除48小时后从表中删除。

下一个可能的延迟是Lambda函数从DynamoDB Streams读取时调用的情况下,如果有许多项。项目将在流中保留最多48小时。如果你没有及时处理它们或者你的函数存在错误,它可能会阻止新增记录被处理。我建议你查看IteratorAge以了解在流中处理记录是否有延迟。

另一个延迟可能出现在Kinesis Firehose中,它取决于配置,可以在将它们写入S3之前缓冲消息长达15分钟(我知道它无法考虑1-3天的延迟,但为了完整性而添加在这里)。

最后,根据文档,S3到SQS的事件通知有时可能需要几分钟甚至更长时间。

profile picture
专家
已回答 4 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则