【发布时间】:2017-07-02 02:37:50
【问题描述】:
由于某种原因,我在完成请求错误之前退出了进程。
这是我的代码:
var http = require('http');
var aws = require('aws-sdk');
var ddb = new aws.DynamoDB();
function getUser(userid) {
var q = ddb.getItem({
TableName: "clients",
Key: {
ClientID: { S: userid } }
}, function(err, data) {
if (err) {
console.log(err);
return err;
}
else {
console.log(data);
}
});
//console.log(q);
}
exports.handler = function(event, context) {
getUser('user23');
console.log("called DynamoDB");
};
在谷歌上搜索后,一些人建议将超时时间更改为更高的值。我做了一分钟。
然而函数只占用了:
持续时间:2542.23 毫秒
我还检查并仔细检查了表名和键名等...
控制台日志有这个:
2016-03-21T04:09:46.390Z - 收到事件
2016-03-21T04:09:46.751Z - 称为 DynamoDB
2016-03-21T04:09:47.012Z - {}
END RequestId: id123
谁能明白为什么这不起作用?
编辑
按照下面的答案我试过了:
console.log('Loading event');
var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
exports.handler = function(event, context) {
console.log(JSON.stringify(event, null, ' '));
dynamodb.listTables(function(err, data) {
console.log(JSON.stringify(data, null, ' '));
});
var tableName = "clients";
var datetime = new Date().getTime().toString();
dynamodb.getItem({
TableName: tableName,
Key: {
ClientID: { S: "gr5f4sgnca25hki" } }
}, function(err, data) {
if (err) {
context.done('error','putting item into dynamodb failed: '+err);
}
else {
context.done(data);
}
});
};
但现在我的回答是:
"errorMessage": "[object Object]"
我想要做的是:检查项目是否存在于数据库中。如果存在则从条目中获取参数,然后对参数做一些事情
- 谁能帮帮我?
【问题讨论】:
标签: json amazon-web-services amazon-dynamodb aws-lambda