2016-10-07 26 views
5

我已经创建了一个Lambda函数,该函数已配置为我自己的API端点之一的方法请求上的“自定义身份验证”。当我使用AWS API网关的“测试”功能时,在日志输出中看不到我的Lambda函数的任何输出。AWS API Gateway Cutom授权程序未运行

我已'部署'API。

然而事情发生,因为当我使用配置的自定义域名打API端点我得到

{"message":"Unauthorized"}

但是如果我删除该端点的“自定义身份验证”,然后按相同端点,它的作品!

我已经启用了日志记录的CloudWatch,这似乎表明,lambda函数是调用,但没有什么的apiGateway日志组下要么,但是必须采取某种情况发生,我无法看到它。

任何人都可以指示我如何调试?

回答

6
  1. API网关测试调用功能将不会调用任何授权者,并将直接调用您的集成。
  2. 您可以使用API​​网关控制台上“授权人”选项卡中提供的授权人测试调用单独测试lambda授权人。
  3. 您的lambda函数必须返回包含主体标识符(principalId)和包含策略语​​句列表的策略文档的响应。

关于此更详细的文档可以在here找到。

Ritisha。

+0

谢谢你澄清Ritisha。 API Gateway上的'测试GUI'不调用自定义验证脚本的事实让我困惑了一下! 我还发现我的cloudwatch日志上的策略角色不正确,它附加到我创建的早期lambda函数,当我切换lambda函数时,应该编辑策略。现在,我可以在CloudWatch日志中看到我的调用:-) – GreensterRox

+0

务必在您的头文件中放入“Authorization:Bearer your_token”,否则授权人不会被调用。 – skunkwerk