【发布时间】:2016-09-24 19:28:48
【问题描述】:
我遇到了一个问题,即 Lambda 函数偶尔会超时,除了函数超时通知之外没有任何错误消息。
为了找到问题的根源,我在整个函数的各个点添加了日志记录,并确定一切正常,直到第一个 getItem() 请求从 DynamoDB 读取数据。读取时间似乎超过了 3.00 秒的超时时间。
当然,我检查了我的 DynamoDB 表以查看是否存在任何限制读取或错误。 DynamoDB 的指标显示没有限制或错误,读取时间最多保持在两位数毫秒内。
很明显,有些地方出了问题或在途中被丢弃了。我该如何解决这个问题,或者至少抓住它并重试读取?
这是一个面向读取的 Web 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");
}
}
});
【问题讨论】:
标签: node.js amazon-dynamodb aws-sdk aws-lambda