对于Kinesis流,我使用AWS API网关创建了代理API。我添加了一个使用python Lambda作为代理的自定义授权程序。 发布了lambda函数并部署了API之后,我能够使用Gateway Test功能成功测试API。我可以在cloudwatch中看到具有来自自定义auth lambda函数的详细打印的日志。认证成功后,API网关推记录我的Kinesis流
然而,当我打电话从Chrome的邮差客户端相同的API,我得到500内部服务器错误和响应头包括从CloudFront的,X X-缓存→错误-amzn-ErrorType→AuthorizerConfigurationException
AWS API网关自定义授权者AuthorizerConfigurationException
Lambda auth函数返回允许对我的API执行请求的策略。返回政策文件是:
{ "policyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-east-1:1234567:myapiId/staging/POST/*" ], "Effect": "Allow" } ] }, "principalId": "Foo" }
为什么请求从Chrome或失败卷曲,但相同的API测试工作正常,从API网关?
它实际上意味着你的授权人未返回政策或返回无效的政策或返回的政策unauthorizing API请求。如果政策没有被返回,授权人代码会因为某种原因失败... – Prabhat