我正在使用AWS IoT。我创建了一个Thing,并使用MQTT查看从Thing Shadow更新的结果。
$ aws / things / thing_name / shadow / update
这是示例结果:
{"state": {
"desired": null,
"reported": {
"ext_addr": "0x124b0013a4c55d",
"last_reported": "22:20:35 2018-10-30",
"objects": {
"temperature": {
"0": {
"oid": "temperature",
"sensorValue": 33,
"units": "Cels",
"minMeaValue": 33,
"maxMeaValue": 33
}
}
}
}
我想使用规则调用Lambda函数将“ last_reported”,“对象” 存储在DynamoDB中的单独列中。但是,我坚持使用Lambda函数的编程步骤。
该表应包含以下内容:
sensor_id = $ {topic(3)}
last_reported =选择状态。已报告。last_reported来自“ $ aws / things / thing_name / shadow / update”
数据 =从'$ aws / things / thing_name / shadow / update'中选择状态。已报告的对象
谢谢。
答案 0 :(得分:0)
尽管您可以使用lambda规则在dynamo中存储IoT数据,但是AWS IoT包含直接到发电机的规则,如果您没有很多规则,我认为这对您来说会容易得多编程经验:
使用以下定义创建 DynamoDBv2 操作:
TreeMap.class
位置:
{
"rule": {
"ruleDisabled": false,
"sql": "SELECT payload.state.reported, topic(3) AS sensor_id FROM '$aws/things/+/shadow/update/accepted'",
"description": "A test DynamoDBv2 rule",
"actions": [{
"dynamoDBv2": {
"roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2",
"putItem": {
"tableName": "my_ddb_table"
}
}
}]
}
}
是IAM角色
可以将物品放到发电机桌上arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2
是
将数据保存到的表的名称