【发布时间】:2017-01-31 19:20:11
【问题描述】:
我们正在试验一种新的无服务器解决方案,其中外部提供商向 DynamoDB 写入数据,DynamoDB Stream 对新的写入事件做出反应,并触发 AWS Lambda 函数来传播变化?
到目前为止,它运行良好,但是,有时我们会注意到数据被延迟,例如几分钟内 Lambda 不会有任何更新。
在浏览了大量 DynamoDB Stream 文档后,他们使用的唯一术语是“近乎实时的流记录”,但一般来说“近乎实时”是什么?我们在这里看到的可能的延迟是什么?
【问题讨论】:
-
没有来自 Lambda 的更新不一定与延迟的数据相同。 Lambda 函数可能是延迟的原因。您是否也验证过该函数之前没有被调用,可能会抛出错误,并且您获得的数据是 Lambda 重试的结果?
-
@Michael-sqlbot 不是 lambda 无状态的吗?据我了解,新的 lambda 函数执行不应该与之前运行的 lambda 有任何关系。
-
这并不完全正确。你的代码应该这样设计,每个容器只处理一个并发调用,但容器经常被重用......所以如果你的函数有由你没有清理的东西触发的设计错误,你的函数可能会失败或在后续调用中停止.错误也会在延迟后重试。阅读您的 cloudwatch 日志,看看您是否发现任何潜在的问题迹象。
标签: amazon-web-services amazon-dynamodb real-time aws-lambda amazon-dynamodb-streams