Я создал лямбда-функцию, которая помещает элемент в таблицу DynamoDB, используя Node.js 10.x. Функция Lambda была интегрирована с SQS Queue через триггер. Когда я помещаю сообщение в очередь, Lambda вызывается, но выдает ошибку при вставке элемента в таблицу DynamoDB.
Сообщение -> SQS -> Lambda -> DynamoDB
I я передаю TableName и Item в качестве входных данных для метода put DynamoDB. Но в журналах CloudWatch говорится, что параметры TableName и Item отсутствуют. Ниже приведены фрагменты кода и снимки экрана.
Я потратил много времени, но не смог решить эту проблему. Может ли кто-нибудь мне помочь?
Лямбда-код
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