2015-12-18 6 views
2

Всякий раз, когда я пытаюсь включить Twilio модуль в моей лямбда-функции, он выдает ошибку:функция AWS Lambda не принимает Twilio модуль

"errorMessage": "Cannot find module 'twilio'"

Ошибка в строке:

var client = require('twilio')(accountSid, authToken); 

Может кто-нибудь помогите мне с тем, как мы можем включать модули?

+1

Ваш вопрос, кажется, «Я включаю этот модуль правильно?» на который можно ответить. Как подсказка, форматирование кода как кода (обертка в backticks [']) облегчает чтение. Не удивляйтесь, если кто-то попросит более полный образец кода. – ToothlessRebel

+0

Я определенно включаю модуль правильно, поскольку это та же процедура, что и для кода NodeJs, который выполняется на локальном сервере, и там мы устанавливаем модуль с помощью «npm» в окне терминала. Но в случае с AWS Lambda нет такого окна терминала для установки модуля. –

+0

Включили ли вы папку 'node_modules' с загруженным почтовым пакетом? У меня есть отдельный каталог с моими пакетами лямбда-узлов и файлами лямбда-функций. Обычным способом является zip-каталог, а не _contents of_ directory. Итак, 'zip -r twilioLambda.zip .', когда в каталоге, где хранятся ваши лямбда-функции и узловые модули. – JohnAllen

ответ

4

Twilio разработчик евангелист здесь.

Существует действительно хороший учебник о том, как включить модули pm в Lambda, написанные командой AWS. Он показывает how to use Node.js packages in Lambda.

Короткий вариант заключается в том, что вы должны создавать свою функцию Lambda локально, как и любой другой скрипт Node.js, устанавливая модули, когда вы входите в скрипт. Затем, как только он будет работать, запишите весь свой каталог, включая каталог node_modules, и используйте Lambda's createFunction API, CLI или консольный интерфейс для его развертывания.

Смежные вопросы