我已经按照教程来完成这项工作。我的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文件...而且我的处理程序没有任何不同的命名 - 它是index.handler。
当我在alexa控制台中运行测试时,我得到了ol:“所请求技能的响应存在问题”
我的json输出为null。
当我在Cloud Watch中登录我的日志时:
无法导入模块'index':Function.Module._resolveFilename出错
我搜索了这个,许多错误是用户上传拉链的方式,并且与处理程序名称和js文件存在冲突。
您可能已经从AWS控制台创建了Lambda函数,但未包含alexa-sdk。要解决此问题,您可以首先使用提供的包含alexa-sdk的“Alexa蓝图”之一,然后使用您的代码覆盖Lambda中的代码。或者,您可以将代码打包在包含alexa-sdk模块的.zip文件中,并通过Web控制台上传包。这是我之前做过的视频,解释了问题https://youtu.be/cFzAIhsldbs - 我很确定这是你的问题。我希望这有帮助。