在 CloudFront 中更改 "Origin Path" 需要很长时间才能生效

Changing "Origin Path" in CloudFront takes very long to kick in

我们在 S3 中托管了一个静态站点,并随 CloudFront 一起提供。该站点可以运行,但推出更新需要很长时间——数小时或更长时间。具体来说,更改 原始路径 并没有像预期的那样快地反映在边缘位置上。

这是我们正在努力实现的...

我们的 S3 存储桶配置为托管网站。它存储同一站点的多个版本。每个 git 标签都有一个子目录。例如:

/git-v1
/git-v2
/git-v3
..

目标是告诉 CF 根据原始路径设置开始提供网站的新版本。我们不想使旧对象失效,只是通过创建一个新目录并将 CF 指向它来继续推进版本。 CloudFront Distributions 下的状态长时间显示 "Deployed",但边缘站点继续忽略新的 Origin Path。

任何有关如何使 CF 更快地开始为新子目录提供服务的想法都将不胜感激。

Origin Path 设置应用于请求 缓存检查之后...而不是之前。当URI中请求的对象不在缓存中时,则向Origin服务器请求该对象。此时,Origin Path 被添加到传入请求路径之前,然后发送到源。缓存基于 incoming 请求路径。¹

设置本身会很快生效,通常在几秒钟内生效,但不会清除缓存。

如果这只是为了对根页面进行版本控制,您可以将原始路径留空,将默认根对象更改为新的根对象,然后使 / 无效。或者,您可以继续做您正在做的事情,并在进行更改后使 /* 失效。免费失效限制为每月 1000 次,但失效 /*(或任何通配符)仅计为 1 次失效,无论通配符匹配多少个对象。


¹ 传入请求路径 也指在 Lambda@Edge Viewer 请求触发器修改后的路径(如果适用)。