无服务器 AWS Lambda Dynamodb 引发内部错误

时间:2021-03-03 11:26:23

标签: amazon-web-services asynchronous lambda async-await amazon-dynamodb

我使用 lambda 制作了一个待办事项应用程序。我使用无服务器框架进行部署。我提出了一个帖子请求,用户可以在其中创建一个待办事项列表。为了测试,我正在使用邮递员。对于我的 Lambda 函数,我使用的是异步函数。我可以在 Dynamo db 中发出发布请求和我的项目存储,但我得到了响应 Internal server error。我的目标是向我的邮递员展示我提出的邮寄请求类型。

这是我的代码:

'use strict'
const AWS = require('aws-sdk');
const uuid = require('uuid');

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports.createTodo = async (event) => {
  const datetime = new Date().toISOString();
  const data = JSON.parse(event.body);
  const params = {
    TableName: 'todos',
    Item: {
      id: uuid.v1(),
      task: data.task,
      done: false,
      createdAt: datetime,
      updatedAt: datetime
    }
  };
  try {
    let data = await dynamoDb.put(params).promise();
    console.log(data);
    return JSON.stringify(data); // this throw me internal server error.
  } catch (error) {
    console.log(error);
  }
};
 

1 个答案:

答案 0 :(得分:1)

由于是通过API Gateway调用Lambda函数,所以需要将响应转换成如下结构-

return {
  statusCode: 200,
  body: JSON.stringify(data),
  // headers: {'Content-Type': 'application/json'}, // Uncomment if needed by your client
}
相关问题