代码之家  ›  专栏  ›  技术社区  ›  rekire

来自Lambda的REST调用通常非常慢

  •  4
  • rekire  · 技术社区  · 6 年前

    我创建了一个小的代理lambda函数来调用RESTAPI。我正在使用node.js和请求包。这是我的密码:

    exports.handler = function (request, context) {
        require('request').post({url: 'https://example.com/foo/bar', json:request, timeout:1000}, function(error, response, body){
            if(error) {
                console.log("Something went wrong:\n" + JSON.stringify(error, null, 2));
                context.succeed({failed:true})
            } else {
                console.log("Returning remote response:\n" + JSON.stringify(body, null, 2));
                context.succeed(body);
            }
        });
    
        console.log("Forwarding request to own backend:\n" + JSON.stringify(request, null, 2));
    };
    

    这真的没什么特别的,但是我认为请求应该在1000毫秒后取消。但我经常看到由于超时3000毫秒而取消了执行。我把速度提高到30000ms,它开始工作了。有时在500毫秒内执行lambda,但下一次需要3100毫秒。我不理解为什么会发生这种情况。请开导我。

    1 回复  |  直到 6 年前
        1
  •  1
  •   stacker    6 年前

    这可能是一种叫做冷启动的正常行为

    当使用AWS Lambda时,可以设置函数的容器 对API网关、DynamoDB、CloudWatch、S3、,

    这是一个好主意 article 从…起 无服务器 关于它是什么,以及如何处理它。