AWS IoT
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

DynamoDB 操作

dynamoDB 操作允许您将所有或部分 MQTT 消息写入 DynamoDB 表。创建 DynamoDB 规则时,您必须指定以下信息:

hashKeyType

哈希键(也称为分区键)的数据类型。有效值为:"STRING""NUMBER"

hashKeyField

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

hashKeyValue

哈希键的值。

rangeKeyType

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

rangeKeyField

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

rangeKeyValue

可选。范围键的值。

operation

可选。要执行的操作类型。该信息遵循替换模板,因此可以是 ${operation},但替换必须产生以下操作之一:INSERTUPDATEDELETE

payloadField

可选。负载将写入的字段的名称。如果省略此值,负载将写入 payload 字段。

table

DynamoDB 表的名称。

roleARN

允许访问 DynamoDB 表的 IAM 角色。该角色至少须允许 dynamoDB:PutItem IAM 操作。

写入 DynamoDB 表的数据是规则的 SQL 语句的结果。hashKeyValuerangeKeyValue 字段通常由表达式 (例如,“${topic()}”或“${timestamp()}”) 组成。

注意

非 JSON 数据以二进制数据形式写入 DynamoDB。DynamoDB 控制台以 Base64 编码文本格式显示数据。

确保与规则关联的角色拥有授予 dynamodb:PutItem 权限的策略。

下面的 JSON 示例介绍了如何在 AWS IoT 规则中定义 dynamoDB 操作:

{ "rule": { "ruleDisabled": false, "sql": "SELECT * AS message FROM 'some/topic'", "description": "A test Dynamo DB rule", "actions": [{ "dynamoDB": { "hashKeyField": "key", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB", "tableName": "my_ddb_table", "hashKeyValue": "${topic()}", "rangeKeyValue": "${timestamp()}", "rangeKeyField": "timestamp" } }] } }

有关更多信息,请参阅 Amazon DynamoDB 入门指南