【发布时间】:2018-09-17 04:59:22
【问题描述】:
我正在使用 AWS Lambda、API Gateway 和 CloudFront 开发 Web API。
CloudFront 目前被用作 API Gateway 某些端点的反向代理,缓存行为完全被禁用。
有几个经常使用的 API,其中的内容很少更新(例如每周一次或每月一次),因此可以缓存以加快响应时间。
但是,我想知道在更新内容时如何使 经常使用但很少更新动态内容的 CloudFront 缓存无效。
我的观察是 CloudFront 保存旧内容的缓存,因为 CloudFront 不会将请求传递到 API 源,直到缓存达到 max-age。
例如:假设我有一个 GET /projects/PROJECT_ID/members API。
项目成员很少更新,但一旦通过PUT /projects/PROJECT_ID/members API 添加/删除成员,缓存应失效以传递项目成员的最新更新内容。
我是否应该在每次更新其内容(调用PUT /projects/ABC/members)后使用invalidation API 使非常特殊的URL(上述示例为/projects/ABC/members)无效?
或者,我应该避免缓存这些动态内容吗?
【问题讨论】:
标签: caching amazon-cloudfront aws-api-gateway