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/