如何在AWS Lambda函数中获取node_modules文件夹

时间:2018-06-28 22:05:14

标签: aws-lambda node-modules alexa-skills-kit

所以我正在学习如何创建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具有这些依赖性。如果可以的话,有没有办法手动添加它们?我试图找到一个控制台,但是在lambda工作区中看不到它。

这是项目的屏幕快照,它确实添加了文件夹和json文件 enter image description here

这是我当前项目的开始 enter image description here

2 个答案:

答案 0 :(得分:0)

  

您可以在本地将整个目录内容压缩并上传到   lambda。但是,是的,您当时不能在控制台中编辑代码。

请记住,必须在处理程序部分中提及处理程序文件名。 就像您的文件名为app.js then app.handler

答案 1 :(得分:0)

我遇到了这个问题,但是不幸的是,Lambda控制台没有为我们提供安装Node.js依赖项的控制台。

因此,您必须实际部署lambda函数。有很多方法可以做到这一点,但更受欢迎的是:

  1. Node Lambda package(用于节点)
  2. 创建ZIP并将其部署在控制台中(由于大小限制,不推荐使用)
  3. AWS CLI

当您学习Alexa技能时,我会向您建议Amazon建议开发人员创建和组织Alexa Skill和Lambda函数的方式。

使用ASK CLI

用于创建new Alexa技能。 这将创建一个目录,其中将包含:

  1. 技能意图模式
  2. 技能的lambda函数
  3. 此外,您可以传递模板以创建特定模板的技能。 Here is list个由Amazon开发人员创建的模板。
  4. 例如用于创建技能代码的命令,用于事实模板技能

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

使用ASK CLI,将为您带来同时部署技能和lambda的优势。

我知道ASK CLI的使用是如此之快,但是一旦掌握了它,它对于Alexa开发人员来说是非常有用的工具。