我需要一些资源或大方向。
我正在考虑使用Cloudfront来帮助解决对我的服务的调用延迟。
我希望能够提供缓存数据,但需要允许客户端指定何时绕过缓存数据并获取最新数据。
我知道我可以在查询参数中发送一个随机值来使缓存无效。但我希望能够发送一个自定义标题来执行相同的操作。
理想情况下,我想使用在API网关后台创建的Cloudfront。这可能吗?或者我是否需要创建一个新的CloudFront才能坐在API Gateway前面?
有人这样做过吗?你能指点我的资源吗?
答案 0 :(得分:1)
实际上,您无法通过传递特定标头(或查询参数)来使无效 CloudFront缓存。这是缓存破坏,而不是失效。
您可以将CloudFront配置为在缓存键中包含特定标头的值,只需将该标头列入白名单即可转发到原点 - 即使原点忽略它也是如此。
然而......需要为您的API消费者提供绕过缓存的方法,这似乎是您的设计存在问题。使用自适应Cache-Control
响应标头并在CloudFront中缓存响应一段适当的时间,此问题就会消失。
否则,通过不断改变该值,聪明的人将一直绕过它。
答案 1 :(得分:0)
CloudFront根据标题进行缓存。
在该标头上创建自定义标题和白名单。 如果在缓存中找不到该值,CloudFront将从原点获取。
希望它有所帮助。
修改强>
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html
基于标头的缓存。