Я пытаюсь получить элемент из моей базы данных DynamoDB. Мой код сейчас написан так, что мне не удается получить какие-либо данные из DynamoDB. Должно быть, я делаю что-то не так, потому что, насколько я могу судить по тесту, мой обратный вызов не вызывается.
Вчера я потратил на это весь день и безуспешно возился с этим с тех пор, как проснулся сегодня утром.
Если кто-нибудь может дать представление о том, что я делаю неправильно здесь, я был бы очень благодарен. Спасибо всем заранее!
Последнее замечание: время ожидания самой функции Lambda установлено на 5 минут. Поэтому я не думаю, что функция Lambda истекает до того, как запрос db может вернуться. Когда я запускаю функцию, она завершается через мгновение.
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB();
var response = null;
var test = false;
function getFromDB(callback) {
const params = {
TableName: process.env['DB_TABLE_NAME'] // evaluates to 'test-table',
Key: {
"id": {
S: postId // evaluates to a big string, pulling it in from an SNS message. Verified it with console.log(). It stores the expected value.
}
}
};
dynamodb.getItem(params, function(err, data) {
if (err) callback(data, true); // an error occurred
else callback(data, true); // successful response
});
}
getFromDB((data, isCalled) => {
response = data;
test = isCalled;
});
console.log(data); // evaluates to null
console.log(test); // evaluates to false
callback(null, "Hello World")
в начало — запускается? Если это так, проблема заключается в вашем запросе к базе данных, в противном случае это ваша настройка лямбда. 2. Я считаю, что аргументы по умолчанию для вашего лямбда-обработчика должны быть(event, context, callback)
. - person Daniel Apt   schedule 27.12.2017