Lambda函数不适用于Alexa Skill调用

时间:2016-10-07 15:56:16

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

我刚创建了我的第一个(自定义)静止图像。我已经通过上传包含我的index.js和所需的所有必要代码的zip文件在Lambda中设置了该功能,包括node_modules和我的孩子所依据的基本Alexa技能(根据教程)。我确保我压缩了文件和子文件夹,而不是文件夹本身(因为我可以看到这是类似错误的常见原因)但是当我创建技能并使用示例话语在Web工具中测试时,我得到:

  

无法调用远程端点,或者它返回的响应是   无效。

我不确定如何调试此功能,因为CloudWatch中没有任何内容。

我可以在Lambda请求中看到我的插槽值已成功翻译/解析并且意图名称是正确的。

在AWS Lambda中,我可以使用LaunchRequest和另一个命名的intent成功调用该函数。但是从开发者控制台,我什么都没得到。 我已经尝试将jSON从lambda测试(有效)复制到开发人员门户网站,我得到了同样的错误。以下是放入开发门户网站(适用于Lambda)的JSON的示例

{
  "session": {
    "new": true,
    "sessionId": "session1234",
    "attributes": {},
    "user": {
      "userId": null
    },
    "application": {
      "applicationId": "amzn1.echo-sdk-ams.app.149e75a3-9a64-4224-8bcq-30666e8fd464"
    }
  },
  "version": "1.0",
  "request": {
    "type": "LaunchRequest",
    "requestId": "request5678"
  }
}

2 个答案:

答案 0 :(得分:2)

解决此问题的第一步可能是测试您的lambda与您的技能配置分开。

在AWS控制台中查看lambda函数时,请注意顶部的“测试”按钮,旁边有一个下拉列表,其中包含配置测试事件的选项。如果选择该选项,您会发现Alexa有预设的测试事件。选择“alexa start session”,然后选择“保存并测试”按钮。

这将为您提供有关lambda执行的更详细反馈。

如果你的lambda在这里工作正常,那么问题可能在于你的技能配置,所以我会回过头来用来配置你的技能的任何教程和文档,并确保你做得对。

当你写下lambda请求看起来很好时我假设你在谈论服务模拟器,所以这是一个好的开始,但配置选项卡上仍然可能存在问题。

答案 1 :(得分:1)

我们为本地技能开发和测试建立了一个工具。

BST Tools

Alexa的请求和响应将直接发送到您的本地服务器,这样您就可以快速编写代码并进行调试,而无需进行任何部署。我发现这对我们自己的发展非常有用。

如果您有任何问题,请与我们联系。

它是开源的:https://github.com/bespoken/bst