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

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

DynamoDB

DynamoDB (dynamoDB) 操作可将所有或部分 MQTT 消息写入 Amazon DynamoDB 表。

您可以按照教程执行操作,该教程向您说明如何使用 DynamoDB 操作创建并测试规则。有关更多信息,请参阅教程:将设备数据存储在 DynamoDB 表中

注意

此规则将非 JSON 数据作为二进制数据写入到 DynamoDB 中。DynamoDB 控制台以 Base64 编码文本格式显示数据。

要求

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

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

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

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

参数

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

tableName

DynamoDB 表的名称。

仅支持替换模板:API 且 Amazon CLI 仅支持

hashKeyField

哈希键(也称为分区键)的名称。

仅支持替换模板:API 且 Amazon CLI 仅支持

hashKeyType

(可选)哈希键(也称为分区键)的数据类型。有效值:STRINGNUMBER

仅支持替换模板:API 且 Amazon CLI 仅支持

hashKeyValue

哈希键的值。考虑使用替代模板,例如 ${topic()} 或者 ${timestamp()}

支持替换模板:是

rangeKeyField

(可选)范围键(也称为排序键)的名称。

仅支持替换模板:API 且 Amazon CLI 仅支持

rangeKeyType

(可选)范围键(也称为排序键)的数据类型。有效值:STRINGNUMBER

仅支持替换模板:API 且 Amazon CLI 仅支持

rangeKeyValue

(可选)范围键的值。考虑使用替代模板,例如 ${topic()} 或者 ${timestamp()}

支持替换模板:是

payloadField

(可选)负载将写入的列的名称。如果省略此值,负载将写入 payload 列。

支持替换模板:是

operation

(可选)要执行的操作类型。有效值:INSERTUPDATEDELETE

支持替换模板:是

roleARN

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

支持替换模板:否

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

示例

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

{ "topicRulePayload": { "sql": "SELECT * AS message FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDB": { "tableName": "my_ddb_table", "hashKeyField": "key", "hashKeyValue": "${topic()}", "rangeKeyField": "timestamp", "rangeKeyValue": "${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB" } } ] } }

另请参阅