在定义的特定时间从另一个 lambda 调用 aws lambda

Invoke aws lambda from another lambda at a defined specific time

我有一个 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 中不可能,任何人都可以建议一种方法或解决方法吗?

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

我只能想到2个选项:

1) 使用 Step Functions service. That service lets you coordinate the Lambda execution and has a "Wait" step 可以在一个函数执行和另一个函数执行之间引入延迟。

2) 您可以使用 CloudWatch > 事件规则来安排函数执行,并在函数执行后删除规则。这将是更多的工作,因为它不适合该用例,但它是可行的。