当查询字符串包含没有值的键时,AWS API Gateway失败,并显示“无法调用”

时间:2018-10-10 09:57:55

标签: amazon-web-services aws-api-gateway

API网关中使用/{myvar}方法定义了资源GET。集成请求指向启用了Lambda Proxy integration的Lambda函数。

当我从API资源编辑器中调用此资源和方法的测试执行时,它适用于诸如以下的查询

/abc
/abc?def=ghi

但无法执行类似的查询

/abc?def

在测试控制台中可见以下响应正文:

{
  "cause": "Unable to invoke. Please try again later.",
  "logref": "f6c905bd-cc71-11e8-a731-37e05a411010",
  "message": ""
}

以及下面的“响应标题和日志”框为空。

当我将这些资源发布到舞台上时,在浏览器中通过HTTPS访问它的结果为{“ message”:“内部服务器错误”} 参见下面的编辑

如何处理?如何在没有网关崩溃的情况下捕获有查询或无查询的整个资源路径?对于贪婪资源/{myvar+},它也以相同的方式失败。


编辑

重新部署后,舞台上不再出现问题。在API网关资源编辑器的“方法执行”窗口中仍然会发生这种情况。

1 个答案:

答案 0 :(得分:0)

您可以通过发送到函数处理程序的“事件”对象捕获查询字符串参数,该对象称为queryStringParameters。您只需将其记录下来并在CloudWatch上进行查看,以查看究竟是什么原因导致的失败。

P.S。抱歉,没有答案,请发表评论^^