Как мне обращаться с node_modules на AWS Lambda с помощью NodeJS? - PullRequest
0 голосов
/ 31 января 2019

Я начал использовать AWS Lambda для небольшого сайта.У меня будет около 10-15 лямбд, связанных с различными триггерами (API, SQS и т. Д.)

Мы будем использовать AWS SAM для создания наших стеков и NodeJS для большинства методов лямбда.

Я много искал, чтобы найти лучшие практики для node_modules и не мог действительно прийти к выводу.Большинство из предложенных решений включали слои, и я не мог понять, как мне построить эти слои и как они работают бок о бок с локальным тестированием.

Вопросы:

  1. В чем разница между использованием node_modules "как есть" и преобразованием директории node_modules в слой?Будет ли это полезно для производительности?Будет ли это полезно только при загрузке холодной лямбды?

  2. Если слои - это решение, я должен использовать один слой для всех лямбд (например, какой-то сценарий CI, который "объединит" их)предварительно развернуть)?Или создать решение моно-репо, использующее все одинаковые версии node_module для всех лямбд?Кажется, это не совсем понятно, но я видел подобные рекомендации, когда искал лучшее решение.

Я ищу достойное решение, которое не повредит производительности, и возможностьработать локально и протестировать наш код перед его развертыванием ..

1 Ответ

0 голосов
/ 31 января 2019

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

...