SQS"/>
通过SQS
我创建了一个Lambda函数,该函数使用Node.js 10.x将项放入DynamoDB表中。 Lambda函数已通过触发器与SQS队列集成。当我将消息放入队列时,Lambda被调用,但是在DynamoDB表中插入项目时引发错误。
消息-> SQS-> Lambda-> DynamoDB
我将TableName和Item作为输入传递给DynamoDB put方法。但是,CloudWatch Logs说缺少TableName和Item参数。下面是代码段和屏幕截图。
我确实花了很多时间,但是无法解决问题。有人可以帮我吗?
Lambda代码
console.log('Loading function');
var AWS = require('aws-sdk');
var dynamo = new AWS.DynamoDB.DocumentClient();
exports.handler = function(event, context, callback) {
console.log('Received event:', JSON.stringify(event, null, 2));
event.Records.forEach(record => {
const { body } = record;
console.log("Input to DynamoAPI :", body);
dynamo.put(body, callback);
});
return {};
}
进入队列的消息
{
"TableName": "user-transaction",
"Item" : {
"transaction-id": 1
}
}
来自CloudWatch的错误消息
回答如下:[module.exports.handler
而不是exports.handler
更多推荐
通过SQS
发布评论