【发布时间】:2017-05-10 03:19:26
【问题描述】:
所以我有这个简单的 lambda 函数,它只是在我的个人用户表中创建一个用户对象。当我单击测试时,它返回 null。但我不确定错误是什么?
这是我的 lambda 函数:
var AWS = require('aws-sdk');
var dynamoDBConfiguration =
{
"accessKeyId": "###",
"secretAccessKey": "###",
"region": "MY_REGION"
};
AWS.config.update(dynamoDBConfiguration);
//var dynamodb = new AWS.DynamoDB();
var dynamodb = new AWS.DynamoDB.DocumentClient();
exports.handler = function(event, context)
{
console.log('stageA');
console.log(JSON.stringify(event, null, ' '));
var responseCode = 200;
var userTableName = "usersTable";
var requestBody = event.body;
var pathParams = event.path;
var httpMethod = event.httpMethod; // HTTP Method (e.g., POST, GET, HEAD)
//User parameters
var displayName;
var email;
var fbUserID;
var firstName;
var folders;
var lastName;
var origin;
var profileImageRef;
var level;
var username;
var birthdate;
var experience;
var folder;
var params;
console.log('create by email action');
requestBody = JSON.parse(requestBody);
//Set variables
firstName = requestBody.firstName;
lastName = requestBody.lastName;
email = requestBody.email;
username = requestBody.username;
experience = "0";
birthdate = requestBody.birthdate;
params = {
TableName:userTableName,
Item:{
"displayName": username,
"email": email,
"firstName": firstName,
"folderNames": {
"My Cards": {"name": "My Cards"}
},
"lastName": lastName,
"experience": experience,
"username": username,
"birthdate": birthdate
}
};
dynamodb.put(params, function(err, data)
{ if (err) {
console.log(err);
context.done(err);
} else {
var response =
{
statusCode: responseCode,
headers:
{
"x-custom-header" : "custom header value"
},
body: JSON.stringify(username)
};
console.log('great success: %j',data);
context.succeed(response);
}
});
};
在我的请求正文中,我有:
{
"email":"tomSample@gmail.com",
"birthdate" : "1/1/1990",
"firstName" : "Tom",
"lastName" : "Sir",
"username" : "Archer"
}
【问题讨论】:
-
只是一个旁注——应该不需要将凭证放入 Lambda 函数中。只需为函数分配一个角色,它就会自动继承权限。
-
添加一些日志记录。添加一些 try/catch 块。在您的问题中包含日志输出。
标签: javascript amazon-web-services amazon-dynamodb aws-lambda aws-sdk