как получить папку node_modules в лямбда-функции aws

Итак, я изучаю, как создавать навыки Alexa, и я успешно создал два, следуя приведенным ниже шагам, но по какой-то причине, когда я выполняю эти шаги, теперь мне не хватает папки node_modules и package.json. Это вызывает следующую ошибку, когда я проверяю свои навыки:

Невозможно импортировать индекс модуля: ошибка

The steps I am following are:
- go to the aws console select lambda
- select create new function
- blueprints -> select alexa-skill-kit-sdk-factskill -> configure
- select existing role ->  lambda_basic_execution
- create function

Я так понимаю, что Alexa-skill-kit-sdk-factskill поставляется с этими зависимостями. Есть ли способ добавить их вручную, если да, то как? Я пытался найти консоль, но не вижу, где она находится в рабочей области лямбда.

Вот снимки экрана проекта, где он добавил папку и файл json введите здесь описание изображения

Вот мой текущий проект введите здесь описание изображения


person Kris    schedule 28.06.2018    source источник


Ответы (2)


У меня была эта проблема, но, к сожалению, консоль Lambda не дает нам консоль для установки зависимостей nodejs.

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

  1. пакет Node Lambda (для узла)
  2. Создайте ZIP и разверните его в консоли (не рекомендуется из-за ограничения размера)
  3. интерфейс командной строки AWS

Пока вы изучаете Alexa Skills, я предлагаю вам то, как Amazon предлагает разработчикам создавать и организовывать Alexa Skill и функцию Lambda.

Используйте ASK CLI

Для создания нового навыка Alexa. Это создаст каталог, который будет иметь:

  1. Схема намерения навыка
  2. Лямбда-функция навыка
  3. Кроме того, вы можете передать шаблон, чтобы создать навык для определенного шаблона. Вот список шаблонов, созданных разработчиками Amazon.
  4. Например, команда для создания кода навыка, для навыка шаблона фактов

     ask new [--template [template-name] [--url <url>]] 
     [-n|--skill-name <name>] 
     [-p| --profile <profile>] [--lambda-name <lambda-name>]
    

Использование ASK CLI даст вам преимущество одновременного развертывания вашего навыка и лямбды.

Я знаю, что в ASK CLI нужно быстро разобраться, но как только вы освоитесь, это станет очень полезным инструментом для разработчиков Alexa.

person Mukul Jain    schedule 06.07.2018

Вы можете заархивировать все содержимое каталога локально и загрузить zip в лямбда. Но да, вы не можете редактировать код в консоли.

Помните, что имя вашего файла обработчика должно быть упомянуто, так как оно находится в разделе «Обработчик». Например, если имя вашего файла app.js then app.handler.

person Rahul    schedule 29.06.2018