【发布时间】:2017-08-03 20:01:04
【问题描述】:
我正在使用在 AWS Lambda 中创建的函数来触发和处理插入到 DynamoDB 表中的每条记录。
但我最近注意到很多记录丢失并且没有被处理。例如,每插入 50,000 条记录,可能会处理大约 2000-3000 条记录。 :(
我还注意到这个正在处理的数字在缓慢增加在一段时间内每 5 分钟左右大约 100-200 条记录。我使用 aws 命令行检查了这一点:
aws dynamodb scan --table-name myDynamoTable --select "COUNT"
如果有帮助,我将使用默认设置来创建 Lambda 函数。
这是 Lambda 函数的问题还是 MY Lambda 函数的配置问题?
我可以更改任何属性/设置以改进其功能吗?
最后,如果最坏的情况发生在最坏的情况下,我可以使用什么作为 Lambda 函数的替代方案(可靠的)?我可以自己构建一个吗?
TIA.
【问题讨论】:
-
能分享一下dynamodb流的配置吗?你确定所有的物品都是新的插入物吗?您是否可以删除所有项目并插入 100 个项目,然后看看会发生什么?需要调试是流还是 lambda 问题?您是否同时插入了所有 5k 个项目?
-
@notionquest 如何找到流配置?单击“管理流”按钮并启用它是我使用 DynamoDB 流的唯一体验。 :) 当我按照您的建议删除和插入项目时,我会检查并查看它的行为。您是指同时插入 5k 个项目还是快速连续地依次插入?
-
尝试顺序插入并检查结果。大约 100 到 500 个项目就足够了。
-
@notionquest 我尝试对表进行 500 次插入、500 次更新和 500 次删除。所有操作都由 lambda 函数记录和处理。然后我尝试了 10000 次插入、10000 次更新和 10000 次删除。所有的插入和删除操作都在处理中,但是很多更新丢失了。我有时只计算了 3000 个已处理的更新,而实际上已经完成了 10000 个。当更新的记录数量很大时,lambda 函数似乎不起作用。这是 Lambda 的可能限制还是我的配置和/或代码的错误?
标签: amazon-web-services amazon-dynamodb aws-lambda amazon-dynamodb-streams