为 CloudFront 禁用缓存

Posted

技术标签:

【中文标题】为 CloudFront 禁用缓存【英文标题】:Disabling Cache for CloudFront 【发布时间】:2018-05-03 14:32:57 【问题描述】:

我正在使用自己的域通过 CloudFront 提供 HTTPS s3 存储桶。我不希望它缓存,因为它用于 QA 环境。

我想知道我怎么能做到这一点。是使用 Origin Cache Headers 还是自定义 0 Time To Live?

【问题讨论】:

如果您看到缓存的内容并想要清除缓存,您可以通过导航到 CloudFront 分配 > 失效 > 创建失效然后输入“*”(所有内容)作为您希望失效的对象。 @blairnangle 该解决方案的成本约为 0.005 美元。目的。所以这真的是核选项。有几种免费的方法可以做到这一点:aws.amazon.com/premiumsupport/knowledge-center/… 在 [Behavior] 部分下,选择缓存策略:[Managed-CachingDisabled] 【参考方案1】:

请使用 AWS 管理控制台 (CloudFront) 中的自定义选项(行为 -> 缓存行为设置),并相应地输入最小 TTL、默认 TTL 和最大 TTL 的值。

最小 TTL

指定您需要对象的最短时间(以秒为单位) 在 CloudFront 转发另一个缓存之前留在 CloudFront 缓存中 请求您的来源以确定该对象是否已被 更新。最小 TTL 的默认值为 0 秒。

最大 TTL

指定您想要对象的最长时间(以秒为单位) 在 CloudFront 查询您的源之前留在 CloudFront 缓存中 查看对象是否已更新。您指定的值 最大 TTL 仅在您的源添加 HTTP 标头时适用 作为 Cache-Control max-age、Cache-Control s-maxage 或 Expires to 对象。

默认 TTL

指定您想要对象的默认时间量(以秒为单位) 在 CloudFront 转发另一个缓存之前留在 CloudFront 缓存中 请求您的来源以确定该对象是否已被 更新。您为默认 TTL 指定的值仅适用于 您的源不添加 HTTP 标头,例如 Cache-Control max-age, Cache-Control s-maxage,或过期对象。

【讨论】:

【参考方案2】:

现在,您可以简单地为云端行为设置缓存禁用策略。

在 AWS 云端控制台上:

转到您的发行版 -> 行为选项卡 编辑行为 在 Cache key and origin requests 标头下 -> 选择 缓存禁用政策

【讨论】:

以上是关于为 CloudFront 禁用缓存的主要内容,如果未能解决你的问题,请参考以下文章

Amazon S3 无法通过 Cloudfront 上传文件

CloudFront 到 EC2 源返回 502 错误。我该如何调查?

将文件推送到 Amazon Cloudfront:可能吗?

Amazon S3 和云端

CORS 请求未成功 - Cloudfront 和 ELB over HTTPS

AWS CloudFront 如何遵循 S3 存储桶重定向规则?