首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DynamoDB:PutItem调用被忽略

DynamoDB:PutItem调用被忽略
EN

Stack Overflow用户
提问于 2022-10-17 10:31:36
回答 3查看 31关注 0票数 0

我有一个Lambda函数绑定到CodeBuild通知;Lambda实例将触发它的通知的详细信息写入DynamoDB表(BillingMode PAY_PER_REQUEST)

每个CodeBuild通知都生成一个独立的Lambda实例。CodeBuild构建可以生成7-8个单独的通知/Lambda实例,其中许多经常同时发生。

Lambda函数使用DynamoDB:PutItem将通知的详细信息提交给DynamoDB。我发现,在30秒的7到8个通知中,有时所有7-8都被写入DynamoDB,但有时它可能低到0-1;许多对DynamoDB:PutItem的调用似乎被“忽略”了。

为什么会发生这种情况?

我的猜测是,DynamoDB不应该以这种方式被多个Lambda实例访问;最佳实践是将更新推到绑定到单独Lambda的SQS队列,并让该单独的Lambda将许多更新写入DynamoDB作为事务的一部分。

是那么回事吗?为什么对DynamoDB:PutItem的并行独立调用会悄然失败?

蒂娅。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-10-17 10:39:48

DynamoDB使用web端点,因此它可以处理任意数量的并发连接,因此问题不在于编写多少Lambdas。

当用户不允许Lambda等待API请求完成,容器过早关闭时,我通常会看到这种情况。首先,我将检查您的代码,并确保您的lambda对于要处理的所有项都是有效的,您可以通过在代码中添加一些简单的日志记录来做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2022-10-17 19:24:49

您描述的是Step函数的一个很好的用例。

虽然Lambda函数可以很好地在服务之间粘合,但它们也有其管理费用和局限性。使用Step函数,您可以直接调用DynamoDB:PutItem,并且可以处理各种场景和流,例如异步调用。这些流可以在Lambda函数中实现,但是可见性较低,可跟踪性较低。

顺便说一句,您也可以从Step函数中调用Lambda函数,但是,我建议您尝试使用直接服务调用来最大化Step函数服务的好处。

票数 0
EN

Stack Overflow用户

发布于 2022-10-18 07:55:51

我的错误,我有一个单独的问题,是混乱的一些范围键,并导致更新“失败”静默。但是关于超时的提示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74095916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档