小编Dan*_*l T的帖子

AWS Lambda 调用函数(js sdk):超时重置为默认值

我正在运行在 AWS Lambda 上执行长时间操作的 Meteor(节点 4.4.7)应用程序。我从我的代码中调用 lambda 函数并在继续下一次调用之前等待响应。我将超时设置为 300000 毫秒,如前一个问题中所述(在我的代码中的 Lambda 和 AWS.Lambda 对象中)。

我的问题是有时AWS.Lambda超时值会重置为默认值 120000 毫秒。由于我的 Lambda 函数需要更多时间来执行(但仍然少于最大 300 秒),我没有收到响应。此外,我看到我的函数按照默认值被调用了 3 次以上maxRetries值,甚至认为我将它设置为 1。

我不知道重现它的步骤。似乎是随机的。它通常在运行我的应用程序几天后发生。如果我检查AWS.Lambda对象的属性,它仍然具有 300000 毫秒的超时值,尽管它的行为类似于具有默认的 120000 毫秒值。一旦发生这种情况,所有后续调用请求都会出现相同的问题,我必须重新启动应用程序才能使其再次运行。

请注意,在 Lambda 日志中,我看到函数正在正确执行。Duration < 120s 在我的代码中返回。重试持续时间 > 120 秒。

示例代码:

var options = {
  maxRetries: 1,
  httpOptions: {
    timeout: 300000
  }
};

var lambda = new AWS.Lambda(options);

var myEventObject = {...};
var payload = JSON.stringify('myEventObject');

var params = {
  FunctionName: 'myLambdaFunction' …
Run Code Online (Sandbox Code Playgroud)

javascript node.js aws-sdk aws-lambda

5
推荐指数
1
解决办法
4085
查看次数

AWS Lambda调用函数并不总是返回

我使用Node 4.3作为运行时运行AWS Lambda函数进行图像/视频处理.我正在使用节点aws-sdk从我的webapp代码调用我的函数.

问题是当函数需要很长时间执行(例如250秒)时,永远不会收到调用回调,尽管我可以在aws cloudwatch日志中清楚地看到函数正确执行.最重要的是,该函数至少重新运行两次(这可能与调用的maxRetries参数有关:因为它没有得到响应,所以它重试).

令我感到困惑的是,它适用于更快的功能,而我的lambda功能永远不会超时.谁有这样的问题?它可以与新的4.3运行时相关吗?请注意,我省略了context.succeed()或context.fail()因为它不再需要,但我尝试了它并没有改变一件事.

Lambda代码

...
var handler = function (event, context, callback) {
    // video/image processing code
    // 
    // callback function
    ..., function(err, result) {
        if (err) {
            console.log("Error", err, err.stack);
            callback(err);
        } else {
            console.log("Done");
            callback(null, result);
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

Lambda调用

var lambda = new AWS.Lambda;

var myEventObject = {...};
var payload = JSON.stringify('myEventObject');

var params = {
    FunctionName: 'myLambdaFunction'
    InvocationType: 'RequestResponse',
    LogType: 'None',
    Payload: payload
};

lambda.invoke(params, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js aws-sdk aws-lambda

2
推荐指数
1
解决办法
1606
查看次数

标签 统计

aws-lambda ×2

aws-sdk ×2

javascript ×2

node.js ×2