当前位置: 首页 > 知识库问答 >
问题:

通过SDK调用Lambda比API网关慢

闾丘山
2023-03-14

我有一个这样的设置:

浏览器->API网关->lambda:87 ms

var http = require('http');
var url = require('url');
var AWS = require('aws-sdk');
var lambda = new AWS.Lambda({region: "eu-central-1"});
http.createServer(function (req, res) {
    var url = req.url.split('/');

    var data1 = url[1];
    var data2 = url[2];

    if ( ! data1 || ! data2 ) {
            res.writeHead(500, {'Content-Type': "application/json" });
            res.end("");
            return;
    }

    var params = {
      FunctionName: 'myfunc',
      InvocationType: "RequestResponse",
      Payload: '{"data1": "' + data1 + '", "data2": "' + data2 + '"}',
      LogType : 'None'
    };
    lambda.invoke(params, function(err, data) {
      if (err) {
            console.log(err, err.stack);
      } else {
            var result = JSON.parse(data.Payload);
            res.writeHead(200, {'Content-Type': "application/json" });
            res.end(result.body);
      }
    });

}).listen(8080);

如何快速调用Lambda函数?

共有1个答案

寿子轩
2023-03-14

API网关具有CloudFront优势,这就是为什么它总是比从外部主机调用lambda更快的原因。如果您将nodejs脚本部署到同一区域和同一VPC/子网中的lambda(如果您已配置),那么它应该比API网关更快。

 类似资料:
  • 我的(非常简单的)代码看起来是这样的: 我将构建好的jar上传到Lambda,并通过创建一个测试事件在AWS控制台中进行测试。它返回正确的响应,正如预期的那样。 但是,我希望API网关调用这个Lambda。我既使用了Lambda代理集成,也定义了自己的主体映射模板。我似乎无法使它工作,我一直得到: 我确定这是一件很简单的事情,我只是错过了一些东西...

  • 我目前在lambda函数和API网关方面遇到了问题。我已经在API网关中启用了代理集成,以便返回Lambda函数的状态代码。现在我有一个问题,调用根本没有执行。错误图片 如果我测试Lambda,一切正常,数据库中的条目将被执行。不通过API网关。 我有什么问题? 非常感谢你的帮助! 测验 编辑: 我将此作为IAM政策添加: 但它仍然带来这个错误:

  • 我目前正在使用NodeJS通过AWS Api网关在AWS lambda上构建机器人,我遇到了POST请求和JSON数据的问题。我的api使用“使用Lambda代理集成”,即使当我测试代理发送内容类型的应用程序/json和正文中的一些json时,例如g我不能访问对象,除非先解析它 e. g. 现在我知道,仅仅通过JSON.parse运行它似乎没什么大不了的,但是我已经看到了许多其他的例子,其中根本不

  • 我在PHP Rest客户端的API调用中面临“endpoint请求超时”问题。将Lamdba超时增加到4分钟,内存也增加到200 MB。 所以在做了一些研究之后,我发现AWS API网关有一个30秒的超时。因此,为了解决这个问题,我尝试使用AWS SDK调用Lambda POST函数。 到目前为止,我对setup和installing一头雾水,找不到任何直接调用Lambda以调用相应的Expres

  • 我想知道是否可以使用API网关POST方法将YAML有效负载格式传递给AWS Lambda函数。我不想要任何有效载荷的模型,也不想使用模板检查有效载荷。我只想以YAML格式将数据传递给Lambda。有人成功地做到了这一点吗? 我之前使用JSON有效负载将有效负载传递给Lambda,但由于某些设计问题,我觉得YAML格式的有效负载更适合此任务。我尝试在请求正文中传递YAML有效负载,但出现以下错误。