簡體   English   中英

AWS同步lambda到lambda與nodejs一起調用

[英]AWS synchronous lambda to lambda invoke with nodejs

我在AWS中有2個lambda函數。

功能A(FA)嘗試同步調用功能B(FB)。 當FA嘗試呼叫FB時,FA將超時。 FA永遠不會到達FA里面的回調方法,FB沒有登錄雲計算表示它被調用。

我已將兩個功能設置為在同一區域,相同角色和沒有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返回

REPORT RequestId:2db82333-f9c3-11e6-8160-93bd7ddf5b19持續時間:3000.43 ms結算時長:3000 ms內存大小:128 MB最大使用內存:25 MB
2017-02-23T12:25:39.363Z 2db82333-f9c3-11e6-8160-93bd7ddf5b19任務在3.00秒后超時

在控制台內運行功能B(持續時間:14.36 ms)

{“id”:53148,“name”:“讓我們來測試”}

因此,從我所知道的FB不是問題,但由於某種原因,從FA調用時沒有響應。

因此,通過將FA上的超時增加到10秒,調用將起作用。 我從來沒有想過FA需要比默認超時更長的時間來調用需要2ms才能運行的FB。 但是,它確實只需要更長的超時時間,因為第一次呼叫占用了3秒鍾,任何后續呼叫都在100ms范圍內運行。

當我添加VPC設置時仍然有問題,但現在我知道調用正在工作我可以解決這個問題,我相信這里已經解決了

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM