javascript - Lambda 上的 AWS DynamoDB 不返回插入的数据

标签 javascript amazon-web-services amazon-dynamodb aws-lambda

const AWS = require('aws-sdk')
const docClient = new AWS.DynamoDB.DocumentClient({ region: 'eu-central-1' })

const createDocument = (text, callback) => {
  const createParams = {
    Item: {
      text: text
    },
    TableName: 'ToDoItems'
  }

  docClient.put(createParams, (err, data) => {
    if(err) {
      callback(err, null)
    } else {
      callback(null, data)
    }
  })
}

exports.handle = (event, context, callback) => {
  createDocument(event.text, (err, data) => {
    if(err) {
      callback(err, null)
    } else {
      callback(null, data)
    }
  })
}

那是我的 AWS Lambda 函数,问题是当我收到回调时,data 对象为空,即使文档已插入 DynamoDB。这可能是什么问题?

最佳答案

你不能。你得单独查询。在 put 上,如果您设置 ReturnValues: 'ALL_NEW',那么您将得到 "ReturnValues can only be ALL_OLD or NONE"

注意 AWS 文档中的“可能”:

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property

ReturnValues — (String) Possible values include:

  • "NONE"
  • "ALL_OLD"
  • "UPDATED_OLD"
  • "ALL_NEW"
  • "UPDATED_NEW"

此外,您也可以只使用 params 值而不是单独查询。如果已保存,那么您在 createParams.Item 中拥有的内容基本上就是您单独查询时返回的内容。

关于javascript - Lambda 上的 AWS DynamoDB 不返回插入的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118627/

相关文章:

amazon-web-services - 当没有事件时,如何让 DynamoDB 自动缩放缩减?

amazon-web-services - Dynamodb 为分页查询预配吞吐量

javascript - 大写两个姓氏之间有破折号

javascript - 匹配并用四个空格替换行首的所有制表符

java - NFS 共享文件访问问题

javascript - 创建一个没有未定义的json

amazon-dynamodb - DynamoDB 为什么以及如何允许在扫描操作中使用超过分配的 RCU?

php - AWS SDK for PHP DynamoDB PutItem 仅适用于非空变量

javascript - 如何使用 AngularJs 构建一个小部件以嵌入第三方网站?

c# - 如何检测JS是否已经被打包