awsのlambdaで、dynamodbからkeyを指定して値を取得したいのですが、
Process exited before completing request
のようなエラーが出てしまいます。
lambdaに追加記述したコードが下記になり、下記のコードを追加する前までは正常に値を取得できておりました。
awsのサイトを真似して書いたはずなのですが、どこが間違えているのでしょうか??
よろしくお願いいたします。
var aws = require("aws-sdk"); var db = new aws.DynamoDB(); var headers = []; var ret = []; exports.handler = function(event, context) { var query = { TableName: 'klog', // 追加記述start (ym:201610を取得したい) KeyConditionExpression : "#k = :val", ExpressionAttributeNames : {"#k" : "ym"}, ExpressionAttributeValues : {":val" : 201610} }; var scanDynamoDB = function(query) { db.scan(query, function(err, data) { if (!err) { // 出力 printout(data.Items); // 繰り返し取得 if (data.LastEvaluatedKey) { query.ExclusiveStartKey = data.LastEvaluatedKey; scanDynamoDB(query); }else{ context.succeed(ret); } } else console.dir(err); }); }; // クエリ実行 scanDynamoDB(query); function printout(items) { var headersMap = {}; var values; var header; var value; if (headers.length === 0) { if (items.length > 0) { for (var i = 0; i < items.length; i++) { for (var key in items[i]) { headersMap[key] = true; } } } for (var key2 in headersMap) { headers.push(key2); } } for (var index in items) { values = []; for (i = 0; i < headers.length; i++) { value = ""; header = headers[i]; if (items[index].hasOwnProperty(header)) { if (items[index][header].N) { value = items[index][header].N; } else if (items[index][header].S) { value = items[index][header].S; } } values.push(value); } ret.push(values); } } };
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。