Lambda 函数不适用于 Alexa Skill 调用

Lambda function not working upon Alexa Skill invocation

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

remote endpoint could not be called, or the response it returned was invalid.

我不确定如何调试它,因为 CloudWatch 中没有任何记录。

我可以在 Lambda 请求中看到我的插槽值是 translated/parsed 成功并且 intentname 是正确的。

在 AWS Lambda 中,我可以使用 LaunchRequest 和另一个命名意图成功调用该函数。但是,从开发者控制台,我什么也得不到。 我尝试将 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"
  }
}

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

在 AWS 控制台中查看您的 lambda 函数时,请注意顶部的 'test' 按钮,它旁边有一个下拉菜单,其中包含用于配置测试事件的选项。如果您 select 该选项,您会发现有针对 Alexa 的预设测试事件。选择 'alexa start session',然后选择 'save and test' 按钮。

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

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

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

我们构建了一个用于本地技能开发和测试的工具。

BST Tools

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

如果您有任何问题,请告诉我。

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