1

我注意到我的 Nodejs Lambda 函数在云监视日志中存在持续时间与函数运行时间的问题。我正在使用无服务器插件来部署/编码我的功能。

这是我的 lambda 函数代码:

module.exports.handler = function (event, context, cb) {
    console.time("function_run_time");
    myFunction(function (callback) {
       console.timeEnd("function_run_time");
       return cb(null, callback)
    });
};

在云监视日志中,我得到以下信息

2016-05-25T00:18:58.881Z    45cd0785-ccce-11e6-818f-cb61404e173c    function_run_time: 477ms 
REPORT RequestId: 45cd0785-ccce-11e6-818f-cb61404e173c  Duration: 1866ms    Billed Duration: 1900 ms Memory Size: 1024 MB   Max Memory Used: 39 MB

我想知道为什么函数运行时间为 477 毫秒,但持续时间为 1866 毫秒。

我的代码中是否需要调用以提前结束 Lamdba 函数?

谢谢

4

1 回答 1

0

在调用回调后检查是否有代码在运行请参见此处:aws lambda

默认情况下,回调将等待 Node.js 运行时事件循环为空,然后冻结进程并将结果返回给调用者。您可以将此属性设置为 false 以请求 AWS Lambda 在调用回调后立即冻结进程

此外,如果您在 Lambda 中使用旧版本的节点,您应该调用 context.succeed();context.fail(error)结束该函数。

于 2016-05-26T06:44:45.873 回答