Alexa技能SDK:请求技能的响应错误

时间:2018-04-13 21:00:10

标签: amazon-web-services aws-lambda alexa alexa-skills-kit

我已经按照教程来完成这项工作。 我的Alexa技能是通过设置调用,意图和话语来构建的。 我的Lambda功能已设置完毕。

我的端点默认区域是:

arn:aws:lambda:us-east-1 :(在AWS Support Center中找到myID):function:myLearn

Lambda中的myLearn功能使用Alexa技能套件设置,该套件具有从技能中复制的正确技能ID。

我的HelloIntent没有插槽。我只是想从调用中获得响应。

我的代码运行node.js 6.10,其中包含一个名为index.handler的处理程序,如下所示:

var Alexa = require("alexa-sdk");

var handlers = {
  "HelloIntent": function () {
    this.response.speak("Hello, It's Me."); 
    this.emit(':responseReady');
  },
  "LaunchRequest": function () {
    this.response.speak("Welcome to my thing I got going on."); 
    this.emit(':responseReady');
  }
};

exports.handler = function(event, context, callback){
  var alexa = Alexa.handler(event, context);
    alexa.registerHandlers(handlers);
    alexa.execute();
};

我已经读过拉链存在问题,但我没有上传任何内容 - 我只是更改了默认的index.js文件...我的处理程序没有任何不同的名称 - 它& #39; s index.handler。

当我在alexa控制台中运行测试时,我得到了ol: "请求技能的响应存在问题"

我的json输出为空。

当我在Cloud Watch中登录我的日志时:

无法导入模块'索引':Function.Module._resolveFilename错误

我搜索了这个,很多错误都是用户上传拉链的方式,并且与处理程序名称和js文件存在冲突。

2 个答案:

答案 0 :(得分:1)

您可能已经从AWS控制台创建了Lambda函数,但未包含alexa-sdk。要解决这个问题,您可以先使用提供的Alexa蓝图之一来解决这个问题。包括alexa-sdk然后用你的代码覆盖Lambda中的代码。或者,您可以将代码打包在包含alexa-sdk模块的.zip文件中,并通过Web控制台上传包。这是我之前做过的视频,解释了问题https://youtu.be/cFzAIhsldbs - 我很确定这是您的问题。我希望这会有所帮助。

答案 1 :(得分:0)

您可以尝试使用“ speechOutput”变量存储您的响应,然后使用“发出”功能。