无法从 Lambda 连接到 dynammo db



我写了一个简单的lambda函数来列出DynammoDB上的表。但是当我执行我的代码时,我无法连接到数据库服务器。我收到网络错误。
以下是代码,

'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);
      }
    });
};

任何建议都会有所帮助

你需要创建一个 documentClient 的实例,如下所示,

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

并使用documentClient调用"listTables"。请找到PUT的示例代码,它显示了我如何使用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))
        }
    });
   
};

如果您在 Lambda 区域中运行不是强制性的,但它也适用于区域。

我的GitHub中也有相同的代码 - https://github.com/vnathv/DynamoDb-CRUD.git

相关内容

  • 没有找到相关文章

最新更新