Aws лямбда-функции несколько банок против одной банки - PullRequest
0 голосов
/ 27 июня 2018

Допустим, у вас есть функция reserve a dining table, разбитая на несколько лямбда-функций, например:

1. RestaurantsLambda - get list of restaurants etc
2. BookingLambda - takes payment, confirms booking etc
3. EmailLambda - sending confirmation emails.

Теперь вы положите все вышеуказанные лямбды в 1 банку или будете иметь банку на лямбду?

1 Ответ

0 голосов
/ 16 августа 2018

Вероятно, все функции очень маленькие. Если это так, то в конце дня это не будет иметь значения. Но если они большие или функции имеют разные зависимости, это будет иметь значение, но ...

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

Итак: лучший способ понять этот ответ: больше базы кода, больше времени, необходимого для загрузки функции, и больше времени, которое вам будет стоить.

Короче говоря: одна банка на функцию!

Дополнительный момент: в Java вы должны быть очень осторожны с библиотеками, которые нужно импортировать. Например, в aws-sdk вы должны импортировать только те библиотеки, которые вам нужны, а не импортировать весь aws-sdk. Это сохранит ваши функции тонкими и ... прочитайте еще раз последний абзац ...; -)

...