【发布时间】:2019-03-09 19:36:21
【问题描述】:
我正在尝试从连接到 AWS IOT CORE 通过 MQTT 发送数据的 IOT SENSOR 将数据导入 DynamoDB。我想要单独列中的所有值,所以我为此使用 Lambda 函数。就是这样:
关于示例/阴影/更新主题,我从传感器收到以下 UTF8 字符串:
{"SystemID":34,"SensorID":96,"ValueMax":87,"ValueMin":78}
然后我有一个 ACT/RULE 排序方式:SELECT * FROM 'EXAMPLE/shadow/update' 并使用以下代码触发 LAMBDA 函数:
console.log('Loading function');
var AWS = require('aws-sdk');
var dynamo = new AWS.DynamoDB.DocumentClient();
var table = "TEST_TABLE";
exports.handler = function(event, context) {
console.log('Received event:', JSON.stringify(event, null, 2));
var params = {
TableName:table,
Item:{
"SystemID": event.SystemID,
"SensorID": event.SensorID,
"ValueMax": event.ValueMax,
"ValueMin": event.ValueMin,
"Timestamp": String(Date.now())
}
};
console.log("Adding...");
dynamo.put(params, function(err, data) {
if (err) {
console.error("Error JSON:", JSON.stringify(err, null, 2));
context.fail();
} else {
console.log("Added:", JSON.stringify(data, null, 2));
context.succeed();
}
});
}
问题:它不起作用!但是,如果我从传感器复制有效负载并通过 AWS 测试控制台发送到 MQTT,它会以 JSON 格式发布,然后 Lambda 函数会正常工作并将其正确放入 DynamoDB。
我做错了什么?
【问题讨论】:
-
什么
event数据打印? -
据我所知,您可以在
cloudWatch上看到 -
如果
console.log不起作用,您可以尝试使用console.info
标签: json amazon-web-services aws-lambda amazon-dynamodb aws-iot