未调用AWS API Gateway自定义授权者

时间:2018-09-28 06:26:39

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

首先,我是AWS的新手。从相当基本的API Gateway + Lambda集成开始。以下是我的用例。

  1. 使用API​​网关创建了Lambda代理集成请求,即GET请求,该请求输出通过查询参数传递的2个数字的加法。现在,如果我访问此API网关端点,将会得到预期的结果。

  2. 现在,我创建了自定义授权者,这又是对另一个lambda的调用。 因此,在到达API网关端点之前,授权者lambda将验证请求。在这种情况下,根本不会调用授权者。

我已为API网关和lambda启用了Cloudwatch日志,所以下面是我面临的问题,

  1. Cloudwatch记录到API网关端点的日志不显示对自定义授权者lambda的调用。

  2. 在lambda组中可以正确查看到终结点lambda的日志,但对于授权者lambda却无法看到相同的日志。

我遵循了以下AWS文档,似乎无济于事。

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html

https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

下面是API网关配置。配置的授权者具有名为“ Authorization”的标头令牌,API的使用者应在调用端点时提供授权令牌,该端点应该由Authorizer进行验证。

enter image description here

API网关日志-配置的Lambda是在不调用授权者的情况下直接调用的。

enter image description here

1 个答案:

答案 0 :(得分:0)

正如@Anup在评论中提到的那样,您可能需要重新部署使更改生效的阶段。

在我的情况下,我将所有内容都设置为terraform,无法弄清楚为什么未调用自定义身份验证器。

在部署中添加变量以触发重新部署后,自定义身份验证器已按预期正确调用。