-1

我写了一个简单的lambda函数来列出DynammoDb上的表。但是当我执行我的代码时,我无法连接到数据库服务器。我得到NetworkingError。
下面是代码,
无法连接到Lambda的dynammo db

'use strict'; 

console.log('Loading function'); 

exports.handler = (event, context, callback) => { 
console.log("$$$$$$$$$second test$$$$$$$$$$") 
//var src_bkt = event.Records[0].s3.bucket.name; 
//var src_key = event.Records[0].s3.object.key; 
var AWS = require("aws-sdk"); 
//console.log(src_bkt) 


console.log("##########################################") 

console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$") 
var dynamodb = new AWS.DynamoDB({ 
region: 'us-east-1', 
endpoint: "http://localhost:8000" 
}); 


    dynamodb.listTables({Limit: 10}, function(err, data) { 
     if (err) { 
     console.log("Error", err.code); 
     } else { 
     console.log("Table names are ", data.TableNames); 
     } 
    }); 
}; 

任何建议将是有益的

+2

我不认为当你连接到AWS DynamoDb,终点是通过'http://本地主机:8000' –

+0

我所提供的相同 – heisenberg

+0

应该还是'KEY'和'SECRET' –

回答

0

你需要像下面创建documentClient的一个实例,

var docClient = new AWS.DynamoDB.DocumentClient(); 

并称之为 'listTables' 与documentClient。请找把示例代码,显示我如何使用documentClient,

var AWS = require("aws-sdk"); 
 

 
AWS.config.update({ 
 
    region: "REGION" 
 
}); 
 

 
var docClient = new AWS.DynamoDB.DocumentClient(); 
 

 
exports.handler = (event, context, callback) => { 
 
    var table = "EmployeeDetails"; 
 

 
    var params = { 
 
     TableName: table, 
 
     Item: { 
 
      "Id" : event.Id, 
 
      "FirstName": event.FirstName, 
 
      "LastName": event.LastName, 
 
      "Age": event.Age, 
 
      "Gender": event.Gender 
 
     } 
 
    }; 
 

 
    
 
    docClient.put(params, function (err, data) { 
 
     if (err) { 
 
      console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2)); 
 
     } else { 
 
      callback(null, "Added item:", JSON.stringify(data, null, 2)) 
 
     } 
 
    }); 
 
    
 
};

如果您在λ区的运行是不是强制性的,但它会与区域正常工作。

相同的代码是在我的GitHub以及 - https://github.com/vnathv/DynamoDb-CRUD.git