我有一个S3存储桶,其中包含index.html
,index.js
和index.css
;静态网站。
我正在使用CloudFront分发此S3存储桶。
我正在使用CodePipeline和CodeBuild的组合来更新我的S3存储桶中的文件。
使用此设置-人们可能会看到我网站的旧版本。我可以做的一件事是设置一个Lambda,当CodePipeline和CodeBuild更新S3存储桶中的文件时,该Lambda将使CloudFront中缓存的S3存储桶无效。
问题是价格昂贵,所以我正在寻找替代品。
我想到的一个解决方案是在S3存储桶中引入目录结构,如下所示:
v1
|
_ index.html
_ index.js
_ index.css
v2
|
_ index.html
_ index.js
_ index.css
...
通过此设置,是否可以使CloudFront指向我的网站的最新版本?这将比缓存失效便宜。
答案 0 :(得分:0)
这就是我解决的方法。
构建过程:
通过这种方式,每5分钟就会从CloudFront刷新index.html,其余资产将根据请求进行投放。
index.hash.js
index.hash.css
用生成的哈希替换哈希。
希望有帮助。