У меня возникла проблема, когда функции Lambda иногда выходят из системы без каких-либо сообщений об ошибках, кроме уведомления о том, что функция вышла из строя.DynamoDB, вызывающий тайм-аут Lambda
Чтобы найти корень проблемы, я добавил регистрацию в разных точках всей моей функции и определил, что все работает правильно до первого запроса getItem() для чтения данных из DynamoDB. Похоже, что чтение занимает больше 3,00 секундного таймаута.
Естественно, я проверил таблицу DynamoDB, чтобы увидеть, были ли какие-либо дросселируемые чтения или ошибки. Показатели DynamoDB не показывают никаких дросселей или ошибок, а время чтения остается в двухзначных миллисекундах максимум.
Ясно, что что-то идет не так или падает по пути. Как я могу исправить эту проблему или хотя бы поймать ее и повторить чтение?
Это ориентированная на чтение функция для веб-API, поэтому время отклика имеет решающее значение. Следовательно, увеличение тайм-аута не решит проблему.
dynamodb.getItem({
"TableName": "tablename",
"Key": { "keyname": { "S": "keyvalue" } },
"AttributesToGet": [ "attributeA", "attributeB" ]
}, function(err, data) {
if(err){
context.done(err);
} else {
if("Item" in data){
nextFunction(event, context);
} else {
context.done("Invalid key");
}
}
});