我已经使用API Gateway创建了一个AWS Lambda函数,将其放置在dynamoDB表中。
在lambda函数中,我添加了一个用于创建userId的模块
UUID。我已经用内联代码创建了Lambda函数。
现在我的问题是我遇到错误,“找不到模块'uuid'”
因为它是一个外部模块。
因此,任何人都可以帮助我解决这个问题。
如何在lambda函数中添加此模块并使用它?
以下是我的lambda函数-
'use strict';
const uuid = require('uuid');
var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB();
exports.handler = function(event, context) {
var tableName = "SiplAwsAPI_users";
var datetime = new Date().getTime().toString();
dynamodb.putItem({
"TableName": tableName,
"Item": {
"userId": {"S": uuid.v1()},
"timedate": {"S": datetime},
"userName": {"S": event.userName},
"userPassword": {"S": event.userPassword},
}
}, function(err, data) {
if (err) {
var response= {"response":"false", "message":JSON.stringify(err.message, null, ' '),"data":JSON.stringify(err.statusCode, null, ' ')};
context.succeed(response);
} else {
//console.log('Dynamo Success: ' + JSON.stringify(data, null, ' '));
var response= {"response":"true", "message":"Register Successfully","data":JSON.stringify(data, null, ' ')};
context.succeed(response);
}
});
}
这是错误-
{
"errorMessage": "Cannot find module 'uuid'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:276:25)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)",
"Object.<anonymous> (/var/task/index.js:3:14)",
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)"
]
}
最佳答案
要包括NPM依赖关系,您需要使用上传功能。为此,您需要创建一个目录并压缩包含所有依赖项的目录。
为了简化devOps的过程,您可以考虑使用serverless framework
关于node.js - 如何在AWS Lambda函数中添加外部模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42969821/