如何解决验证 APIGW 正在缓存 Lambda 授权方响应
我目前正在通过 APIGW 运行 API,端点受 Lambda 授权程序保护。为了提高性能,我在 APIGW 中为 Authorizer 生成的 Policy 启用了缓存。
但是,我不确定如何有效地测试缓存是否正常工作。是否有一些我可以使用的标准调用系列,或者某种方法来明确检查策略是否被缓存?
SAM 模板的一部分:
EndpointConfiguration:
Type: PRIVATE
VPCEndpointIds: !Ref VPCEndpoints
Auth:
DefaultAuthorizer: DefAuthorizer
Authorizers:
DefAuthorizer:
FunctionPayloadType: TOKEN
FunctionInvokeRole: !Sub arn:aws:iam::${AWS::AccountId}:role/RoleName
FunctionArn: !ImportValue AuthorizerArn
Identity:
Headers:
- Authorization
ReauthorizeEvery: 3600
解决方法
我们可以检查两件事:
- 客户授权方 Lambda 在使用缓存中的策略时根本不会被调用。
- 您可以为 cloudwatch 启用 Api 网关阶段日志。你会看到日志记录的不同。 当它被缓存时,你只会看到一个条目Using valid authorizer policy for principal
当它没有被缓存时,你应该看到额外的内容
- 向https://lambda.us-east-1.amazonaws.com/2015-03-31/functions/arn:aws:lambda...发送请求。
- 解析前的授权器结果主体:...由 lambda 返回的完整策略
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。