【问题标题】:DynamoDB causing module initialization error in Node/LambdaDynamoDB 导致 Node/Lambda 中的模块初始化错误
【发布时间】:2017-09-14 00:57:41
【问题描述】:

为了清楚起见,这发生在 Node 6.10 AWS Lambda 函数中。

错误:

module initialization error: Error at Object.Service (/var/task/node_modules/aws-sdk/lib/service.js:24:28) at Object.features.constructor [as DynamoDB] (/var/task/node_modules/aws-sdk/lib/util.js:602:24) at Object.<anonymous> (/var/task/web.js:4:22) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19)

模块的初始化:

const aws = require('aws-sdk'); this.dynamoDb = new aws.DynamoDB();

不知道在这里做什么;遗漏了一些明显的东西?

【问题讨论】:

  • 尝试从您的部署包中排除aws-sdk。反正它已经包含在 Lambda 环境中了。
  • 有想法,谢谢!

标签: node.js amazon-web-services amazon-dynamodb aws-lambda


【解决方案1】:

请尝试,

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

//If you are running in Lambda you don't need below AWS.config section
AWS.config.update({
region: "REGION"
});

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

并使用“docClient”访问 DynamoDB 函数。

例如,

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

请在我的 GitHub 中找到我创建的示例:- https://github.com/vnathv/DynamoDb-CRUD.git

【讨论】:

  • 如果您在 Lambda 中运行,则无需更新 AWS.config
  • 是的,我同意。编辑解决方案以包含您的评论。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 2018-02-13
  • 2023-03-12
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
相关资源
最近更新 更多