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

0

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

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

1 Antwort
0

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

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

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

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

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

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen