Как загрузить модули в AWS Lambda?
Я создал несколько лямбда-функций с помощью веб-редактора. Пока все хорошо. Теперь я хотел бы начать расширять их с помощью модулей (таких как Q для обещаний). Я не могу понять, как вывести модули в лямбду, чтобы они могли использоваться моими функциями.
Я прочитал этой но это, кажется, включает в себя настройку EC2 и запуск лямбда-функций оттуда. Существует механизм для загрузки zip при создании функции, но это, похоже, связано отправка функций, разработанных локально. Поскольку я работаю в веб-редакторе, который кажется странным рабочего процесса.
Как я могу просто развернуть некоторые модули для использования в моем лямбда-функции?
1 ответ:
Я уверен, что вы не можете загрузить модули NPM без загрузки .
но вы можете на самом деле получить этот процесс до двух быстрых командных строк.
вот так:
поместите файл(ы) лямбда-функции в отдельный каталог. Это потому, что вы устанавливаете
npm
пакеты локально для лямбда, и вы хотите иметь возможность изолировать и проверить, что вы будете загружать в лямбда.установите NPM пакеты локально с
npm install packageName
пока вы находитесь в отдельном лямбда-каталоге, созданном на шаге #1.убедитесь, что ваша функция работает при локальном запуске:
node lambdaFunc.js
(вы можете просто прокомментировать дваexport.handler
строки в коде, чтобы адаптировать код для запуска с узлом локально).ок, ваш пакет лямбда работает. Застегивается с помощью такой команды как
zip -r lambdaFunc.zip .
пока на каталог вашего лямбда-пакета. Делать конечно, чтобы не заархивировать сам каталог но содержание каталога.если у вас
aws-cli
установлен, который я предлагаю иметь, если вы хотите, чтобы сделать вашу жизнь проще, теперь вы можете ввести эту команду:aws lambda update-function-code --function-name lambdaFunc \ --zip-file file://~/path/to/your/lambdaFunc.zip
(нет кавычек вокруг части lambdaFunc выше, если вам интересно, как я сделал)
теперь вы можете нажать тест в лямбде приставка.
Я предлагаю добавить короткий псевдоним для обеих вышеуказанных команд. Вот что у меня есть в моем для гораздо более длинной команды обновления лямбда:
alias up="aws lambda update-function-code --function-name lambdaFunc \ --zip-file fileb://~/path/to/your/lambdaFunc.zip"