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" } } ] } }

另请参阅