DynamoDBv2 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DynamoDBv2

DynamoDBv2 (dynamoDBv2) 操作可将所有或部分 MQTT 消息写入 Amazon DynamoDB 表。负载中的每个属性将写入 DynamoDB 数据库中的单独一列。

要求

此规则操作具有以下要求:

  • Amazon IoT 可以承担以执行 dynamodb:PutItem 操作的 IAM 角色。有关更多信息,请参阅向 Amazon IoT 规则授予所需的访问权限

    在 Amazon IoT 控制台中,您可以选择或创建一个角色以允许 Amazon IoT 执行此规则操作。

  • 如果要定义 MQTT 消息负载,则它必须包含一个与表的主分区键相匹配的根级键,以及一个与表的主排序键相匹配的根级键。

  • 如果您使用客户托管的 Amazon KMS key (KMS 密钥)对 DynamoDB 中的数据进行静态加密,服务必须具有代表调用方使用 KMS 的权限。有关更多信息,请参阅 Amazon DynamoDB 入门指南中的客户托管式 KMS

参数

使用此操作创建 Amazon IoT 规则时,您必须指定以下信息:

putItem

用于指定消息数据将写入的 DynamoDB 表的对象。该对象必须具备以下信息:

tableName

DynamoDB 表的名称。

支持替换模板:仅限 API 和 Amazon CLI

roleARN

允许访问 DynamoDB 表的 IAM 角色。有关更多信息,请参阅要求

支持替换模板:否

写入 DynamoDB 表的数据是规则的 SQL 语句的结果。

示例

以下 JSON 示例定义了在 Amazon IoT 规则中的 DynamoDBv2 操作。

{ "topicRulePayload": { "sql": "SELECT * AS message FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDBv2": { "putItem": { "tableName": "my_ddb_table" }, "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2", } } ] } }

以下 JSON 示例定义了在 Amazon IoT 规则中带有替换模板的 DynamoDB 操作。

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2015-10-08", "actions": [ { "dynamoDBv2": { "putItem": { "tableName": "${topic()}" }, "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2" } } ] } }

另请参阅