node.js - AWS DynamoDB node.js put请求不会将数据放入Dynamo表中

标签 node.js amazon-web-services aws-sdk aws-lambda

我正在使用以下代码将数据提取到 DynamoDB。

从 Kinesis 读取的代码

var AWS = require("aws-sdk"),
DOC = require("dynamodb-doc");
docClient = new DOC.DynamoDB();

function upsert(result) {
   var info = new Info(result);
   console.log('Within upsert :', info.AcctNo);
   docClient.putItem({
      TableName: "test_lamda_dynamo_table",
      Item: info
   }, function(err, data) {
      if (err) {
        console.error('error', err);
        context.done('error', err);
      } else {
        console.log('success', data);
        context.done('success', event.Records);
      }
   });
}

我无法在 cloudwatch 日志中看到错误处理程序系统输出,也无法在 DynamoDB 中看到数据。

以下是来自 cloudwatch 的示例日志

"Within upsert Info: 1234456"

我无法在 cloudwatch lambda 函数日志中看到与 PutItem 函数相关的任何错误日志。

请建议我在这里做错了什么。

最佳答案

我在下面的链接中找到了此问题的解决方案。

Querying DynamoDB with Lambda does nothing

这是因为 lambda 处理程序中也使用了 context.succeed 调用。

    exports.handler = function(event, context) {

  event.Records.forEach(function(record) {
    try {
      var payload = new Buffer(record.kinesis.data, 'base64').toString('ascii');

      console.log('Decoded payload:', payload);

      upsert(payload, context);

      // bug
      context.succeed("Success")

    } catch (e) {
      // log error and continue
      console.error('Error occured while inserting messages to Dynamo' + e);
    }
  });
};

关于node.js - AWS DynamoDB node.js put请求不会将数据放入Dynamo表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33231810/

相关文章:

python - 使用 aws boto 将文件从 csv 转换为 S3 上的 parquet

amazon-web-services - 无法在浏览器中查看 S3 中的图像

node.js - 微服务架构

javascript - 如何使用 NestJS 正确设置序列化?

javascript - 为什么 bower 安装包两次?

amazon-web-services - 如何找到 AWS CloudFormation 堆栈创建失败的根本原因?

amazon-web-services - AWS SSM 参数存储

amazon-web-services - 多个文件的预签名网址?

ios - DynamoDB 映射器 : allowed dataypes in swift

node.js - cassandra Node js 驱动程序的executeAsync 方法