【发布时间】:2016-12-17 15:26:59
【问题描述】:
我从 ASK 开发开始。我对某些行为感到有些困惑,我想知道如何从“服务模拟器”控制台调试错误。如何获取有关The remote endpoint could not be called, or the response it returned was invalid. 错误的更多信息?
这是我的情况:
我有一项技能和三个 Lambda 函数(ARN:A、ARN:B、ARN:C)。如果我将技能的端点设置为 ARN:A 并尝试从技能的服务模拟器中对其进行测试,则会收到错误响应:The remote endpoint could not be called, or the response it returned was invalid.
我复制了 lambda 请求,我前往 ARN:A 的 lambda 控制台,我设置了测试,粘贴来自服务模拟器的请求,我对其进行测试,我得到了一个非常好的 ASK 响应。然后我前往 ARN:B 的 lambda 控制台并创建一个虚拟处理程序,它返回与 ARN:A 从控制台给我的完全相同的响应(字面意思是复制和粘贴)。我将技能的端点设置为 ARN:B,使用服务模拟器对其进行测试,我得到了预期的响应(因此,响应的格式很好),尽管是静态的。我再次前往 lambda 控制台,将代码从 ARN:A 复制并粘贴到新的 ARN:C 中。将技能的端点设置为 ARN:C,它工作得非常好。 ARN:C 的问题在于它没有将数据持久保存到 DynamoDB 中的适当权限(我仍然对系统很熟悉,不确定我是否可以在不同的 lambda 之间共享一个 IAM 角色,我相信不会)。
我怎样才能弄清楚 ARN:A 发生了什么?那是在某处记录的吗?我在 cloudwatch/logs 中找不到与此特定 lambda 或技能相关的任何条目。
不确定是否相关,我将 python 用于我的 lambda 运行时,代码(目前)内联在网络编辑器中,我使用 boto3 来持久化到 DynamoDB。
【问题讨论】:
-
仅供参考,我能够正确设置 ARN:3 的 DynamoDB 权限,并且 ARN:3 一切正常,但 ARN:1 仍然失败,所以我仍然有兴趣了解如何调试/在这种情况下获取更多信息。
标签: python amazon-web-services amazon-dynamodb aws-lambda alexa-skills-kit