首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS DynamoDB没有使用规则引擎从IoT核心插入所有项

AWS DynamoDB没有使用规则引擎从IoT核心插入所有项
EN

Stack Overflow用户
提问于 2022-05-25 13:39:18
回答 1查看 225关注 0票数 0

因此,我使用AWS IoT Core、AWS规则引擎和AWS DynamoDB创建了一个IoT解决方案。

该解决方案如下所示: MQTT消息发布到主题" topic /+/data“,其中"+”是发布消息的内容。有一条规则可以拦截这些消息,并且应该将已发布的消息保存为DynamoDB表中的记录。问题是并非所有消息都保存在数据库中。DynamoDB表容量模式被设置为“按需”。

可能会出错的事情:

并不是所有的消息都被发布到主题流messages

  • DynamoDB

  • 规则没有捕获所有的

  • 没有像

那样坚持所有的消息

可以消除1和2,因为amount日志只显示与发布的消息数量相对应的成功"RuleExecution“事件,也就是说,如果有600个消息发布,那么就有600个成功的"RuleExecution”事件。还对发布的500条消息进行了测试。这些消息来自Apache JMeter的负载测试,在这些测试中,不同数量的设备每秒钟模拟发送一条消息。设备的数量从10到100,运行时间从30秒到15分不等。尽管Cloudwatch声称它们成功插入了DynamoDB表,但所有测试都导致了很大比例的消息(高达30% )没有插入到该表中。

尽管Cloudwatch确认所有"RuleExecution“事件都是成功的,但无论如何,Cloudwatch并不会插入规则拦截的所有消息。Cloudwatch也不会出现任何失败的事件。

这是什么原因?

EN

Stack Overflow用户

回答已采纳

发布于 2022-05-27 11:13:40

主键的碰撞是问题所在。通过使用timestamp()作为主键,使用traceid()作为排序键,一切都按预期工作。我现在可以在表中看到几个条目具有相同的时间戳。

需要明确的是:用于将消息插入到DynamoDB中的规则( IAM角色被裁剪出来):

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

https://stackoverflow.com/questions/72378722

复制
相关文章

相似问题

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