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

DynamoDB

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

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

注意

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

Requirements

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

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

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

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

Parameters

使用此操作创建 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 角色。有关更多信息,请参阅 Requirements

支持替换模板:否

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

Examples

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

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

另请参阅