【发布时间】:2019-05-03 00:06:50
【问题描述】:
每当我更改我的 S3 存储桶时,我的 CloudFront 都不会更新为新内容。为了查看新内容,我每次都必须创建一个失效。每当我将内容推送到我的 S3 存储桶时,是否有其他方法可以让 CloudFront 加载新内容?
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-cloudfront
每当我更改我的 S3 存储桶时,我的 CloudFront 都不会更新为新内容。为了查看新内容,我每次都必须创建一个失效。每当我将内容推送到我的 S3 存储桶时,是否有其他方法可以让 CloudFront 加载新内容?
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-cloudfront
让我在线回答你的问题。
每当我更改我的 S3 存储桶时,我的 CloudFront 都不会更新 到新内容。我每次都必须创建一个失效 以便查看新内容。
是的,这是 CloudFront 中的默认行为,除非您已将 TTL 值定义为零 (0)。
是否有另一种方法可以让 CloudFront 随时加载新内容 我将内容推送到我的 S3 存储桶?
您可以使用 AWS Lambda 自动失效。去做这个;
注意:确保 Lambda 函数具有具有策略权限的 IAM 角色以在 CloudFront 中触发失效。
【讨论】:
您已使用缓存设置创建了 S3 源,或者您已将缓存标头添加到 S3 存储桶策略。
如果您检查您的浏览器请求,您可以检查缓存标头以及它被缓存的原因。
您可以找到http缓存头列表以及它们的使用方式here
希望对你有帮助。
【讨论】:
Cloudfront 在边缘点保留缓存至少一小时。
您可以做什么,正如docs 所建议的那样,您可以使用版本化文件。
但是:
最热门页面的文件的新版本可能在 24 小时内无法提供,因为 CloudFront 可能在您用新版本替换文件之前检索了这些页面的文件
所以我猜你最好的选择是失效。
编辑:如果更改名称,您可以阻止版本化文件的缓存行为。
【讨论】: