【问题标题】:AWS synchronous lambda to lambda invoke with nodejsAWS 同步 lambda 到 lambda 调用 nodejs
【发布时间】:2017-07-13 22:35:50
【问题描述】:

我在 AWS 中有 2 个 lambda 函数。

函数 A (FA),尝试同步调用函数 B (FB)。当 FA 尝试调用 FB 时,FA 将超时。 FA 永远不会到达 FA 内部的回调方法,并且 FB 在 cloudwatch 中没有日志说它被调用了。

我已将这两个功能设置为在同一区域、同一角色和无 VPC 中运行(因为我已阅读 VPC 可能会导致问题,但在相同的 VPC 和子网设置下也尝试过,但没有运气)

用户角色具有以下关联的权限

  • AWSLambdaExecute
  • AWSLambdaBasicExecutionRole
  • AWSLambdaRole

功能A

exports.handler = (event, context, callback) => {
    var aws = require('aws-sdk');
    var lambda = new aws.Lambda({
      region: 'ap-southeast-2'
    });


    lambda.invoke({
      FunctionName: 'async-receiver-test'
    }, function(error, data) {
        console.log('inside return function');
      if (error) {
         context.done('error', error);
      }
      if(data.Payload){
        context.succeed(data.Payload);
      }
    });
};

函数 B - (name => async-receiver-test)

exports.handler = (event, context, callback) => {
    var eventItem = {id : 53148, name : "Let's get testing"};
    callback(null, eventItem);
};

在控制台内运行函数A返回

报告请求 ID:2db82333-f9c3-11e6-8160-93bd7ddf5b19 持续时间:3000.43 毫秒计费持续时间:3000 毫秒内存大小:128 MB 最大内存使用量:25 MB
2017-02-23T12:25:39.363Z 2db82333-f9c3-11e6-8160-93bd7ddf5b19 任务在 3.00 秒后超时

在控制台内运行函数 B(持续时间:14.36 毫秒)

{ “身份证”:53148, "name": "让我们开始测试吧" }

因此,据我所知,这不是 FB 的问题,但由于某种原因,从 FA 调用时没有响应。

【问题讨论】:

    标签: node.js amazon-web-services lambda aws-lambda


    【解决方案1】:

    事实证明,通过将 FA 的超时时间增加到 10 秒,调用将起作用。我从没想过 FA 需要比默认超时时间更长的时间来调用需要 2 毫秒才能运行的 FB。然而,第一次调用只需要更长的超时时间,因为它运行了 3 秒,任何后续调用都在 100 毫秒范围内运行。

    当我重新添加 VPC 设置时仍然遇到问题,但现在我知道调用正在工作,我可以解决我认为已在此处解决的问题

    https://stackoverflow.com/a/39206646/564957

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 2016-12-31
    • 2017-01-06
    • 1970-01-01
    • 2020-12-20
    • 2020-03-04
    • 2019-09-23
    • 2018-01-19
    相关资源
    最近更新 更多