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

DynamoDBv2

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

Requirements

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

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

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

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

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

Parameters

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

putItem

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

tableName

DynamoDB 表的名称。

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

roleARN

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

支持替换模板:否

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

Examples

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

另请参阅