내용으로 건너뛰기

获取事件的延迟为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개 답변
0

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

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

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

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

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

전문가

답변함 3년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.