我已经按照教程来完成这项工作。 我的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文件存在冲突。
答案 0 :(得分:1)
您可能已经从AWS控制台创建了Lambda函数,但未包含alexa-sdk。要解决这个问题,您可以先使用提供的Alexa蓝图之一来解决这个问题。包括alexa-sdk然后用你的代码覆盖Lambda中的代码。或者,您可以将代码打包在包含alexa-sdk模块的.zip文件中,并通过Web控制台上传包。这是我之前做过的视频,解释了问题https://youtu.be/cFzAIhsldbs - 我很确定这是您的问题。我希望这会有所帮助。
答案 1 :(得分:0)
您可以尝试使用“ speechOutput”变量存储您的响应,然后使用“发出”功能。