#node.js #amazon-web-services #aws-lambda
#node.js #amazon-web-services #aws-lambda
Вопрос:
В AWS возможно ли, чтобы один HTTP-запрос выполнял лямбда-выражение, которое, в свою очередь, запускает каскад лямбд, выполняемых последовательно, где конечная лямбда возвращает результат пользователю?
Я знаю, что один из способов добиться этого — чтобы начальная лямбда «оставалась запущенной» и управляла другими лямбдами, но я бы заплатил за то, чтобы эта лямбда оркестровки большую часть времени ничего не делала, т. Е. Платила за время, которое она ожидает от других. Если бы это был не лямбда-код, это было бы похоже на блокировку (и оплату) всего потока, в то время как другие потоки выполняют свою работу.
Если AWS не останавливает выставление счетов, пока асинхронные лямбды «спят» / ожидают сетевого ввода-вывода?
Комментарии:
1. Пошаговые функции AWS?
Ответ №1:
К сожалению, поскольку вы обнаружили, что можно вызвать только одну лямбда-функцию, это становится оркестратором.
Это не идеально, но должно быть так, если вы хотите использовать несколько лямбда-функций при обслуживании HTTP-запроса, вы можете либо использовать лямбда-выражение для вызова нескольких лямбда-выражений, либо вместо этого создать пошаговую функцию, которая может управлять отдельными шагами. Вам все равно понадобится лямбда, чтобы запустить это, а затем опросить его статус, прежде чем возвращать результаты.
Комментарии:
1. Понятно, интересно, спасибо! Я думаю, что одним из преимуществ является то, что я могу использовать самую низкую настройку ОЗУ — 128 МБ — в оркестраторе. Я предполагаю, что он должен хранить кучу в течение всего этого времени, поэтому, пока я не получаю свои деньги за циклы процессора, я все еще плачу за то, что мне нужно, я думаю: D
2. Да, это, по крайней мере, снизит затраты 🙂
3. вы можете вызвать функцию step непосредственно из API Gateway … сокращает 1 лямбда
4. Однако вы не получите ответ, поскольку он просто вернет идентификатор выполнения . :(.