本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
D ynamoDBv 2 (dynamoDBv2
) 操作将MQTT消息的全部或部分写入亚马逊 DynamoDB 表。负载中的每个属性将写入 DynamoDB 数据库中的单独一列。
要求
此规则操作具有以下要求:
-
AWS IoT 可以IAM担任执行
dynamodb:PutItem
操作的角色。有关更多信息,请参阅 授予 AWS IoT 规则所需的访问权限。在 AWS IoT 控制台中,您可以选择或创建 AWS IoT 允许执行此规则操作的角色。
-
MQTT消息负载必须包含与表的主分区键匹配的根级键和与表的主排序键相匹配的根级键(如果已定义)。
-
如果您使用客户托管 AWS KMS key (KMS密钥)对 DynamoDB 中的静态数据进行加密,则该服务必须有权代表调用KMS者使用该密钥。有关更多信息,请参阅 Amazon DynamoDB 入门指南中的客户托管KMS密钥。
参数
使用此操作创建 AWS IoT 规则时,必须指定以下信息:
写入 DynamoDB 表的数据是规则语句SQL的结果。
示例
以下JSON示例定义了 AWS IoT 规则中的 D ynamoDBv 2 操作。
{
"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示例定义了在规则中使用替换模板的 DynamoDB 操作。 AWS IoT
{
"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"
}
}
]
}
}
另请参阅
-
Amazon DynamoDB 开发人员指南中的什么是 DynamoDB?
-
Amazon DynamoDB 开发人员指南中的 DynamoDB 入门