【发布时间】:2017-08-27 20:59:39
【问题描述】:
我们有一个托管在 S3 中并通过 CloudFront 交付的静态站点。该网站可以运行,但推出更新需要相当长的时间——数小时或更长时间。具体来说,更改原点路径并没有像期望的那样快速反映在边缘位置上。
这是我们正在努力实现的目标......
我们的 S3 存储桶配置为托管网站。它存储同一站点的多个版本。每个 git 标签都有一个子目录。例如:
/git-v1
/git-v2
/git-v3
..
目标是告诉 CF 根据 Origin Path 设置开始提供网站的新版本。我们不想使旧对象失效,只需通过创建一个新目录并将 CF 指向它来继续推进版本。 CloudFront Distributions 下的状态长时间显示“已部署”,但边缘站点继续忽略新的源路径。
任何关于如何让 CF 更快地开始服务新子目录的想法将不胜感激。
【问题讨论】:
-
更改源路径设置后,是否要清除 CloudFront 缓存?
-
这是我感到困惑的部分。我没有更新现有对象。根据 CF 手册,“使对象无效会从 CloudFront 边缘缓存中删除它们。一种更快、更便宜的方法是使用版本化的对象或目录名称。”那么,不应该只更改源路径吗?
-
他们所说的版本控制类型涉及更改所请求的实际 URL,例如您的网页请求
style-v1.css,然后您将其更改为style-v2.css。但是在您的场景中,请求 URL 永远不会改变,所以我认为 CloudFront 将继续提供对象的旧版本,直到缓存过期。 -
是的,只要有可能,我们就通过 URL 路径进行版本控制,这种方法效果很好,但这种情况是站点根目录的主/索引页面。我想清除缓存是唯一的途径......
标签: amazon-web-services amazon-s3 amazon-cloudfront