繁体   English   中英

Lambda 不在 DynamoDB 中创建数据

[英]Lambda doesn't create data in DynamoDB

  1. 我收到代码响应 200 成功

  2. 但 null json 消息 Postman

  3. 数据不是在 DynamoDB 中创建的。 这是我的 lambda:

     exports.handler = async (event, context, callback) => { const id = replaceAll(event.queryStringParameters.authorId, " ", "-").toLowerCase(); const params = { Item: { id: { S: id }, title: { S: event.queryStringParameters.title }, watchHref: { S: event.queryStringParameters.watchHref }, authorId: { S: event.queryStringParameters.authorId }, length: { S: event.queryStringParameters.length }, category: { S: event.queryStringParameters.category } }, TableName: "todos" }; // console.log("@@@@@@@@@@@ ID " + params.Item.id.S + ""); // console.log("@@@@@@@@@@@ Title " + params.Item.title.S + ""); // console.log("@@@@@@@@@@@ Title " + params.Item.watchHref.S + ""); // console.log("@@@@@@@@@@@ Title " + params.Item.authorId.S + ""); // console.log("@@@@@@@@@@@ Title " + params.Item.length.S + ""); // console.log("@@@@@@@@@@@ Title " + params.Item.category.S + ""); dynamodb.putItem(params, function (err, data) { console.log("@@@@@@@@@@@ ID " + params.Item.id.S + ""); if (err) { console.log("@@@@@@@@@@@ ERROR" + err); callback(err); } else { console.log("@@@@@@@@@@ INSIDE ELSE"); callback(null, { id: params.Item.id.S, title: params.Item.title.S, watchHref: params.Item.watchHref.S, authorId: params.Item.authorId.S, length: params.Item.length.S, category: params.Item.category.S }); } }); };

我究竟做错了什么? 我遵循与文档相同的原则。

作为参考,我正在使用 HTTP API 网关代理集成,这是我的表格:

在此处输入图像描述

这可能是因为您正在使用异步function 处理程序,该处理程序在您获得任何结果之前完成。 克服这个问题的一种方法是使用Promise模式,如aws docs中所示。

或者您可能根本不想使用async处理程序。 在这种情况下,您应该从 function 中删除async并调整处理程序,如非异步处理程序的文档所示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM