Как настроить лямбда / пошаговые функции так, чтобы мне не выставляли счета во время ожидания ответов API? - PullRequest
0 голосов
/ 17 февраля 2020

Допустим, у меня есть верхний уровень AWS лямбда-функции, называемой order_for_all_clients, и еще одна лямбда-функция, называемая order_for_single_client.

order_for_all_clients, собирает 1000 клиентов и выполняет вызов функции шага для order_for_single_client для каждого из них.

order_for_single_client имеет рабочий процесс по следующим направлениям:

  1. Выполнение внешнего вызова API, ожидание ответа.
  2. На основе на # 1 выполните еще один внешний вызов API, дождитесь ответа.
  3. На основе # 2 сделайте еще один внешний вызов API, дождитесь ответа.

Внутри этой функции 90% времени тратится на ожидание вызовов API для возврата ответа. Остальные 10% тратятся на выполнение фактической обработки / вычисления.

Есть ли способ сконструировать лямбда / пошаговые функции таким образом, чтобы он мог инициировать вызов API, закрыть текущую функцию лямбда и затем повторно инициировать лямбда-функцию после возврата вызова API? При этом мне будет выставлен счет только за фактическое время вычислений, а не за время, проведенное в режиме ожидания в ожидании возврата вызовов API.

1 Ответ

0 голосов
/ 17 февраля 2020

Нет, это невозможно. Не было бы ничего, чтобы «получить» ответ API.

Более чистое решение «asyn c» состояло бы в том, чтобы запросить внешнюю службу для отправки ответа в очередь Amazon SQS , который затем может вызвать AWS лямбда-функцию. Однако для этого потребуется изменить способ, которым внешняя служба обрабатывает запросы API.

Или внешняя служба может предоставлять отдельные вызовы API для «отправки» запроса и затем «получения» результата запроса . Функция Lambda может «отправить» запрос. Затем другой процесс будет опрашивать службу, чтобы получить результаты для любых выполненных заданий.

Если у вас много запросов в секунду к внешней службе, возможно, стоит перейти на Amazon EC2 и делать запросы параллельно . Это позволит более эффективно использовать ресурсы в ожидании ответа.

...