首先,我是AWS的新手。从相当基本的API Gateway + Lambda集成开始。以下是我的用例。
使用API网关创建了Lambda代理集成请求,即GET请求,该请求输出通过查询参数传递的2个数字的加法。现在,如果我访问此API网关端点,将会得到预期的结果。
现在,我创建了自定义授权者,这又是对另一个lambda的调用。 因此,在到达API网关端点之前,授权者lambda将验证请求。在这种情况下,根本不会调用授权者。
我已为API网关和lambda启用了Cloudwatch日志,所以下面是我面临的问题,
Cloudwatch记录到API网关端点的日志不显示对自定义授权者lambda的调用。
在lambda组中可以正确查看到终结点lambda的日志,但对于授权者lambda却无法看到相同的日志。
我遵循了以下AWS文档,似乎无济于事。
https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
下面是API网关配置。配置的授权者具有名为“ Authorization”的标头令牌,API的使用者应在调用端点时提供授权令牌,该端点应该由Authorizer进行验证。
API网关日志-配置的Lambda是在不调用授权者的情况下直接调用的。
答案 0 :(得分:0)
正如@Anup在评论中提到的那样,您可能需要重新部署使更改生效的阶段。
在我的情况下,我将所有内容都设置为terraform,无法弄清楚为什么未调用自定义身份验证器。
在部署中添加变量以触发重新部署后,自定义身份验证器已按预期正确调用。