Развертывание функций Lambda без двоичных файлов

У меня есть некоторые проблемы с бессерверным развертыванием, потому что, когда я развертываю свою функцию Lambda, Serverless Framework начинает упаковывать мои node_modules, но это занимает много времени.

Я имею в виду, зачем снова загружать node_modules, если он не был обновлен. Может быть, кто-нибудь знает, как развернуть только код функции Lambda без упаковки двоичных файлов?


person Nikita Zotcik    schedule 24.03.2017    source источник


Ответы (1)


Вам необходимо добавить конфигурацию упаковки.

В файле serverless.yml добавьте:

package:
  exclude:
    - node_modules/**

Полезно удалить модули AWS-SDK (потому что, если вы их не загрузите, Lambda будет использовать то, что предлагает AWS — что лучше) и удалить модули разработки (например, фреймворки для тестирования). Однако все остальные модули являются зависимостями и должны быть загружены для правильной работы вашей функции. Итак, настройте параметры пакета, чтобы включить/исключить именно то, что вам нужно.

Относительно вашего другого вопроса

зачем снова загружать node_modules, если он не был обновлен

Это не ограничение Serverless Framework. Это ограничение сервиса AWS Lambda. Вы не можете выполнить частичную загрузку функции Lambda. Lambda всегда требует, чтобы загруженный zip-пакет содержал обновленный код и все необходимые зависимости модулей.

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

person Zanon    schedule 24.03.2017