在定义的特定时间从另一个Lambda调用AWS Lambda

时间:2018-12-17 11:54:26

标签: javascript amazon-web-services aws-lambda aws-step-functions

我有一个lambda函数(例如A),它需要调用另一个lambda函数(例如B)。但是其他功能(B)不应在调用时运行,而应在A定义的时间运行。

下面给出了我如何在函数A中调用函数B的方法。

function startRecording(startTime, roomName) {
    const payload = {
      roomName
    }
    
    const param = {
      FunctionName: 'consult-classroom-api-dev-StartRecording',
      InvocationType: "RequestResponse",
      Payload: JSON.stringify(payload)
    }
    
    return new Promise((resolve, reject) => {
       lambda.invoke(param,(err, data) => {
          if (err) {
            reject(err);
          } else {
            let payload = JSON.parse(data.Payload);
            let payloadBody = JSON.parse(payload.body);
            resolve(payloadBody);
          }
        }
      );
    });
  }

所以我有开始的时间。那时需要一种方法来调用函数B。如果aws无法做到这一点,谁能提出建议或解决方法?

1 个答案:

答案 0 :(得分:1)

仅使用Lambda是不可能的。您无法在特定时间仅使用Lambda服务且不执行任何功能来执行Lambda。

我只能想到2种选择:

1)使用Step Functions服务。该服务可让您协调Lambda的执行,并具有"Wait" step,可用于在一个函数执行与另一个函数执行之间引入延迟。

2)您可以使用CloudWatch>事件规则来计划函数执行,然后在执行后删除规则。