#amazon-web-services #aws-lambda #aws-sdk-nodejs #aws-lambda-layers
#amazon-web-services #aws-lambda #aws-sdk-nodejs #aws-lambda-layers
Вопрос:
При создании лямбда-слоя JavaScript в документах AWS говорится, что мы должны заархивировать всю папку node_modules и вставить в слой. Но в папке node_modules много избыточного кода. Все это не требуется при запуске лямбда-функции. Есть ли общий способ урезать папку node_modules, чтобы повысить эффективность функции Lambda с использованием этого уровня?
Комментарии:
1. Почему у вас есть избыточный код в папке node_modules? Вы говорите о зависимостях разработки / тестирования? aws-sdk всегда включен в AWS lambda, поэтому эту зависимость включать не обязательно. Но помимо этого, все, что вы используете в функции, должно быть объединено.
2. Большинство пакетов в node_modules имеют src, dist, min, файл .md, лицензионные файлы.. Каждый из них занимает место. Фактически, реальный код занимает около 30% папки node_modules. Все это увеличивает использование памяти в лямбде. Лучше отключить его.
3. файлы без ссылок, такие как src-файлы (при наличии dist), readmes и т.д., Не будут занимать память в lambda, только хранилище.
4. Не могли бы вы немного уточнить — когда вы говорите «общий способ», общий способ заключается в использовании фильтра при создании zip-файла слоя. Отфильтруйте то, что вам не нужно. Вы ищете общий способ фильтрации того, что устанавливается npm? Или для фильтрации того, что включается в zip? Короче говоря, я думаю, вы получите только общие ответы на свой запрос на «общий способ», поэтому, если вы можете сделать свой вопрос более конкретным, вы, скорее всего, получите конкретные ответы, которые, скорее всего, помогут.
5. @Shawn Я могу вручную ввести каждую папку в node_modules, чтобы идентифицировать и удалить все, что не требуется. Общий способ.. Я имею в виду некоторую команду, которую я запускаю, которая идентифицирует и очищает весь беспорядок в папке node_modules