AWS API网关自定义授权程序未运行

时间:2016-10-07 16:00:23

标签: aws-lambda aws-api-gateway

我创建了一个Lambda函数,我已将其配置为'自定义身份验证'在我的一个API端点的方法请求上。当我使用'测试' AWS API网关的功能我在日志输出中看不到Lambda函数的任何输出。

我已经部署了' API。

然而 正在发生,因为当我使用配置的自定义域名命中api端点时,我得到了

{"message":"Unauthorized"}

但是,如果我删除了'自定义身份验证'从这个端点到同一个端点,它可以工作!

我已经启用了cloudwatch日志记录,这似乎表明lambda函数是而不是调用但是apiGateway日志组中没有任何内容,但是,必须是发生了,我只是看不到它。

有人能指出我如何调试这个方向吗?

2 个答案:

答案 0 :(得分:8)

  1. API网关测试调用功能不会调用任何授权者,而是直接调用您的集成。
  2. 您可以使用API​​网关控制台上“授权程序”选项卡中提供的授权程序测试调用来独立测试lambda授权程序。
  3. 您的lambda函数必须返回包含主体标识符(principalId)的响应和包含策略声明列表的策略文档。
  4. 可以找到更详细的文档here

    Ritisha。

答案 1 :(得分:0)

您可以通过aws cli添加权限,以使您的授权者调用lambda,我做到了,而且效果很好!。

aws --profile profile lambda add-permission \
      --statement-id uuid \
      --action lambda:InvokeFunction \
      --function-name "arn:aws:lambda:$region:$accountId:function:functionName" \
      --principal apigateway.amazonaws.com \
      --source-arn "arn:aws:execute-api:$region:$accountId:$apigateway_id/authorizers/$authorizerId"