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”)。

解决方案 是部署新功能。