AWS Lambda 测试没有 return 来自 DynamoDB table 的数据
AWS Lambda test does not return data from DynamoDB table
我正在尝试从名为仪表板的 DynamoDB table 获取数据,因此我正在使用来自 table.
的示例测试 Lambda 函数
但是我从测试中得到的结果是:
Response:
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
它应该只是 return 来自 table 的数据,根据 ID 匹配它,因为这是我用来划分 table.
的数据
Dashboard示例数据也是我做的测试
{
"batteryLevel": 35,
"deviceId": "yxftd9pnitd-156xhref9g69a",
"eventId": "c07e3f9f-f6bb-4792-be6f-a9be95cdff38",
"id": 12345,
"location": {
"accuracy": 35.369,
"latitude": 55.8256671,
"longitude": 37.5962931
},
"tags": [
{
"accelX": 0.012,
"accelY": -0.004,
"accelZ": 1.008,
"createDate": "2020-08-11T18:51:58+0300",
"dataFormat": 5,
"defaultBackground": 2,
"favorite": true,
"humidity": 32.8425,
"id": "E5:F1:98:34:C0:0F",
"measurementSequenceNumber": 62865,
"movementCounter": 21,
"name": "Kitchen",
"pressure": 98702,
"rssi": -43,
"temperature": 25.58,
"txPower": 4,
"updateAt": "2020-08-18T19:57:48+0300",
"voltage": 3.013
}
],
"time": "2020-08-18T19:57:48+0300"
}
Lambda 函数
"use strict";
const AWS = require("aws-sdk");
AWS.config.update({ region: "ap-southeast-1" });
exports.handler = async (event, context) => {
const ddb = new AWS.DynamoDB({ apiVersion: "2012-10-08" });
const documentClient = new AWS.DynamoDB.DocumentClient({ region: "ap-southeast-1"});
const params = {
TableName: "dashboard",
Key: {
id: 12345
}
};
try {
const data = await documentClient.get(params);
console.log(data);
} catch (err) {
console.log(err);
}
};
根据评论。
该问题是由于添加新代码后未部署 函数引起的。随后,正在执行先前部署的版本(即“Hello from Lambda”)。
解决方案 是部署新功能。
我正在尝试从名为仪表板的 DynamoDB table 获取数据,因此我正在使用来自 table.
的示例测试 Lambda 函数但是我从测试中得到的结果是:
Response:
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
它应该只是 return 来自 table 的数据,根据 ID 匹配它,因为这是我用来划分 table.
的数据Dashboard示例数据也是我做的测试
{
"batteryLevel": 35,
"deviceId": "yxftd9pnitd-156xhref9g69a",
"eventId": "c07e3f9f-f6bb-4792-be6f-a9be95cdff38",
"id": 12345,
"location": {
"accuracy": 35.369,
"latitude": 55.8256671,
"longitude": 37.5962931
},
"tags": [
{
"accelX": 0.012,
"accelY": -0.004,
"accelZ": 1.008,
"createDate": "2020-08-11T18:51:58+0300",
"dataFormat": 5,
"defaultBackground": 2,
"favorite": true,
"humidity": 32.8425,
"id": "E5:F1:98:34:C0:0F",
"measurementSequenceNumber": 62865,
"movementCounter": 21,
"name": "Kitchen",
"pressure": 98702,
"rssi": -43,
"temperature": 25.58,
"txPower": 4,
"updateAt": "2020-08-18T19:57:48+0300",
"voltage": 3.013
}
],
"time": "2020-08-18T19:57:48+0300"
}
Lambda 函数
"use strict";
const AWS = require("aws-sdk");
AWS.config.update({ region: "ap-southeast-1" });
exports.handler = async (event, context) => {
const ddb = new AWS.DynamoDB({ apiVersion: "2012-10-08" });
const documentClient = new AWS.DynamoDB.DocumentClient({ region: "ap-southeast-1"});
const params = {
TableName: "dashboard",
Key: {
id: 12345
}
};
try {
const data = await documentClient.get(params);
console.log(data);
} catch (err) {
console.log(err);
}
};
根据评论。
该问题是由于添加新代码后未部署 函数引起的。随后,正在执行先前部署的版本(即“Hello from Lambda”)。
解决方案 是部署新功能。