【问题标题】:AWS IoT Rule - Update multiple columns in DynamoDBAWS IoT 规则 - 更新 DynamoDB 中的多个列
【发布时间】:2019-01-24 20:54:47
【问题描述】:

我已经能够使用 AWS 文档将 mqtt 消息插入到表的单个列中。我希望能够更新(而不是插入)表中的多个列。我在 IoT 规则中使用了 DynamoDbv2 操作,并将 IAM 角色更改为 UpdateItem,但没有任何反应。

有没有办法查看这些错误发生的地点/时间? 我应该创建一个 Lambda 函数来处理这个问题吗?有这样的例子吗? 谢谢。

【问题讨论】:

  • 怎么样了?我遇到了类似的问题,我制定了两条规则,一条用于插入A列,另一条用于更新B列。

标签: amazon-web-services amazon-dynamodb aws-iot


【解决方案1】:

您可以使用 DynamoDbV2 规则操作来更新 DynamodDB 表中的多个属性(或列,如果您愿意)。您提供给物联网规则的角色需要允许dynamodb:PutItem 出现在有问题的桌子上。角色当然需要在其信任策略中包含 IoT 服务(在某些地方也称为承担角色策略文档)。

为了帮助解决您打开 IoT 日志记录并将级别设置为调试的任何问题。然后您可以查看 AWS Cloudwatch 日志中的任何错误。

https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html

【讨论】:

    【解决方案2】:

    首先请记住,DynamoDbV2 内部使用的是PutItem,因此您不能只更新属性,而是会覆盖整个对象。

    如果你想更新项目,你需要实现 Lambda 函数并手动实现数据更新。

    对于 IAM 角色,您的信任关系应包含: { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-26
      • 2019-05-03
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2017-02-22
      • 2016-01-09
      相关资源
      最近更新 更多