Вызывать лямбда aws из другой лямбды в определенное время - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть лямбда-функция (скажем, A), которая должна вызывать другую лямбда-функцию (скажем, B).Но эта другая функция (B) не должна запускаться во время вызова, а должна выполняться во время, определенное A.

Ниже приведено, как я пытаюсь вызвать функцию B внутри функции A.

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 голосов
/ 17 декабря 2018

Это невозможно, используя только лямбду.Вы не можете выполнить Lambda в определенное время, используя только службу Lambda и не выполняя никаких функций.

Я могу думать только о двух вариантах:

1) Использование Шаг Функции сервис.Этот сервис позволяет вам координировать выполнение Lambda и имеет шаг «Ожидание» , который вы можете использовать, чтобы ввести задержку между выполнением одной функции и другой.

2) Вы можете использовать CloudWatch>Правила событий, чтобы запланировать выполнение функции и после ее выполнения удалить правило.Это было бы больше работы, поскольку не предназначено для этого варианта использования, но это выполнимо.

...