AWS Lambda,计费时间比处理时间长

AWS Lambda, billed time longer than processing time

在我的 Lambda 函数 (Node.js) 中,我测量了从函数开始到函数结束的时间,大约为 1400 毫秒。但是,lambda 给我的计费持续时间是 2800 毫秒。

这正常吗?如此高的差异(基本上是两倍)的原因可能是什么?

这是我用来测量的代码

exports.handler = function(event, context, callback) {
    let time = new Date();

    ... some logic runs ...

    console.log(`{new Date().getTime() - time.getTime()}`);
    callback(null, response);
}

评论中的所有功劳均归功于 Mark B。

解决方案是添加行:

context.callbackWaitsForEmptyEventLoop = false;

原因是 AWS Lambda 默认情况下,对于 Node.js 部署,将在返回之前等待事件循环为空。因此,如果您可以设置上面的行来防止这种情况发生。