AWS Lambda JWT授权器测试通过,但方法请求中仅显示AWS_IAM授权选项的问题求助
排查API Gateway无法显示Lambda JWT授权器的问题
我之前也碰到过一模一样的情况,别慌,咱们从这几个常见的配置点逐一排查:
确认API Gateway类型:你当前用的是REST API还是HTTP API?
- 如果是HTTP API,Lambda授权器是在API的「授权器」菜单创建后,直接绑定到路由上的,不会出现在方法请求的安全认证选项里;
- 如果是REST API,继续往下排查。
检查授权器的归属API:创建Lambda授权器时,有没有选对当前正在配置的API?有时候不小心选错了API,就会导致当前API的方法请求里看不到这个授权器。
验证授权器类型:创建授权器时是不是选了Token类型?JWT授权属于Token类授权,要是选成了Request类型,在方法请求里的展示位置会不一样,甚至需要额外的参数配置。
确认Lambda函数的资源策略:虽然你用测试工具能成功调用Lambda,但API Gateway调用Lambda需要专门的权限。去Lambda函数的「配置」→「权限」→「资源策略」里,检查是否存在API Gateway的调用权限。如果没有,可以手动添加类似下面的策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:你的区域:你的账号ID:function:你的Lambda函数名", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:execute-api:你的区域:你的账号ID:你的API ID/*/*/*" } } } ] }刷新或重新部署API:AWS控制台偶尔会有缓存问题,试试刷新方法请求页面;另外,创建授权器后需要重新部署API到对应的阶段,配置才会生效,别漏掉这一步。
重启控制台会话:极端情况可以退出AWS控制台重新登录,有时候缓存会顽固地留在会话里。
内容的提问来源于stack exchange,提问作者Donald
相关产品推荐
相关产品推荐

