Amazon Lambda 不会写入 DynamoDB
Amazon Lambda won't write to DynamoDB
我正在将数据流式传输到 Amazon Kinesis,我使用 Amazon Lambda 处理数据并将其写入 DynamoDB。
我的 Lambda 代码:
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
exports.handler = function(event, context) {
//console.log('Received event:', JSON.stringify(event, null, 2));
event.Records.forEach(function(record) {
// Kinesis data is base64 encoded so decode here
var payload = new Buffer(record.kinesis.data, 'base64').toString('ascii');
console.log('Decoded payload:', payload);
var tableName = "_events";
var datetime = new Date().getTime().toString();
dynamo.putItem({
"TableName": tableName,
"Item" : {
"eventID" : record["eventID"],
"eventName" : payload
}
}, function(err, data) {
if (err) {
console.log("dynamodb error: " + err);
context.done('error putting item into dynamodb failed: '+err);
}
else {
console.log('great success: '+JSON.stringify(data, null, ' '));
context.succeed('K THX BY');
}
});
});
// context.succeed("Successfully processed " + event.Records.length + " records.");
};
我运行测试时,数据成功保存到DynamoDB。但是当我流式传输真实数据时,它并没有发生,而日志显示数据是由 lambda 函数接收的。
另外 console.log() 函数在 putItem() 块中不起作用,所以我不知道如何调试这个问题。
问题是:
1.我没有设置正确的权限
2. 我只是没有等到数据可以被lambda函数处理。
我正在将数据流式传输到 Amazon Kinesis,我使用 Amazon Lambda 处理数据并将其写入 DynamoDB。
我的 Lambda 代码:
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
exports.handler = function(event, context) {
//console.log('Received event:', JSON.stringify(event, null, 2));
event.Records.forEach(function(record) {
// Kinesis data is base64 encoded so decode here
var payload = new Buffer(record.kinesis.data, 'base64').toString('ascii');
console.log('Decoded payload:', payload);
var tableName = "_events";
var datetime = new Date().getTime().toString();
dynamo.putItem({
"TableName": tableName,
"Item" : {
"eventID" : record["eventID"],
"eventName" : payload
}
}, function(err, data) {
if (err) {
console.log("dynamodb error: " + err);
context.done('error putting item into dynamodb failed: '+err);
}
else {
console.log('great success: '+JSON.stringify(data, null, ' '));
context.succeed('K THX BY');
}
});
});
// context.succeed("Successfully processed " + event.Records.length + " records.");
};
我运行测试时,数据成功保存到DynamoDB。但是当我流式传输真实数据时,它并没有发生,而日志显示数据是由 lambda 函数接收的。 另外 console.log() 函数在 putItem() 块中不起作用,所以我不知道如何调试这个问题。
问题是: 1.我没有设置正确的权限 2. 我只是没有等到数据可以被lambda函数处理。