.zip
Файл необходим для того , чтобы включить НПЕ модули Lambda. И вам действительно не следует использовать веб-редактор Lambda для чего-либо еще - как с любым рабочим кодом, вы должны разрабатывать локально, заниматься git и т. Д.
МОЙ ПОТОК:
1) Мои лямбда-функции обычно являются вспомогательными утилитами для более крупного проекта, поэтому я создаю в них каталог / aws / lambdas для их размещения.
2) Каждый отдельный лямбда-каталог содержит index.js файл содержащий код функции, файл package.json, определяющий зависимости, и подкаталог / node_modules . (Файл package.json не используется Lambda, просто мы можем выполнить npm install
команду локально .)
package.json:
{
"name": "my_lambda",
"dependencies": {
"svg2png": "^4.1.1"
}
}
3) Я .gitignore все каталоги node_modules и .zip файлы, так что файлы, сгенерированные из npm, устанавливаются и архивируются, не загромождают наше репо.
.gitignore:
# Ignore node_modules
**/node_modules
# Ignore any zip files
*.zip
4) Я запускаю npm install
из каталога для установки модулей и разрабатываю / тестирую функцию локально.
5) Я заархивировал лямбда-каталог и загрузил его через консоль.
( ВАЖНО: не используйте утилиту сжатия «Mac» из Finder для архивирования файла! Вы должны запустить zip из CLI в корне каталога - см. Здесь )
zip -r ../yourfilename.zip *
НОТА:
Вы можете столкнуться с проблемами, если вы будете устанавливать модули узлов локально на вашем Mac, поскольку некоторые специфичные для платформы модули могут дать сбой при развертывании в среде Lambda на основе Linux. (См. Https://stackoverflow.com/a/29994851/165673 )
Решение состоит в том, чтобы скомпилировать модули в экземпляре EC2, запущенном из AMI, который соответствует используемой среде выполнения Lambda Node.js (см. Этот список сред выполнения Lambda и их соответствующие AMI ).
См. Также Пакет развертывания AWS Lambda в Node.js - AWS Lambda.