Бэкэнд API на AWS Lambda

Контекст: у меня есть пример использования, в котором моя серверная служба должна вычислять 1 или несколько функций, где каждая функция представляет собой простое вычисление (может быть так же просто, как добавление двух чисел), и каждая функция принимает ввод и возвращает выходное значение, которое может быть логическим или числовым. Клиент действительно может запрашивать функции (1 или 10 и т. Д.), Также каждая функция может иметь несколько версий.

Дизайн. Лямбда-функция кажется хорошим выбором, поскольку она поддерживает управление версиями и заботится о масштабировании. В моем проекте одна лямбда-функция будет получать запрос, а затем вызывать дополнительные лямбда-функции параллельно (скажем, пользователь запросил 12 функций, лямбда-функция L1 будет вызывать 12 лямбда-функций параллельно) синхронно и возвращать все вычисленные значения функций в виде одного ответа (HTTP ). Таким образом, все функции могут быть версированы в их собственных лямбда-функциях.

Вопросы. Можно ли вызывать лямбда-функцию непосредственно из другой лямбда-функции? Это хороший вариант использования лямбда-функций?

Спасибо


person obaid    schedule 30.05.2018    source источник


Ответы (1)


Я думаю, что Lambda отлично подойдет для вашего варианта использования. Для управления версиями вы можете использовать управление версиями API, предоставляемое API Gateway, но я думаю, что это многовато для вашего случая. Просто создавайте разные функции.

Посетите serverless.com. Это прочная основа, с которой легко начать. Для его настройки потребуется много работы, плюс у вас будет ваша инфраструктура в виде кода.

Да, можно вызывать лямбды из других лямбд. Однако не существует «чистого» способа сделать это. С другой стороны, «Пошаговые функции» могут быть тем, что вам нужно. Функции цепочки поддержки Lambda в рабочем процессе. Предыдущая лямбда не «вызывает» следующую функцию, а просто переходит к следующему шагу рабочего процесса. Бессерверная платформа также поддерживает использование этого метода и может быть настроена в файле конфигурации serverless.yml.

person ThatGuyRob    schedule 30.05.2018
comment
Спасибо, пошаговые функции, я думаю, работают с асинхронными случаями, например, он не может возвращать ответ от лямбда на шлюз API, вы можете просто вызвать его через шлюз API, например, запустить и забыть - person obaid; 01.06.2018