-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