【问题标题】:AWS CloudFront Not UpdatingAWS CloudFront 未更新
【发布时间】:2019-05-03 00:06:50
【问题描述】:

每当我更改我的 S3 存储桶时,我的 CloudFront 都不会更新为新内容。为了查看新内容,我每次都必须创建一个失效。每当我将内容推送到我的 S3 存储桶时,是否有其他方法可以让 CloudFront 加载新内容?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront


    【解决方案1】:

    让我在线回答你的问题。

    每当我更改我的 S3 存储桶时,我的 CloudFront 都不会更新 到新内容。我每次都必须创建一个失效 以便查看新内容。

    是的,这是 CloudFront 中的默认行为,除非您已将 TTL 值定义为零 (0)。

    是否有另一种方法可以让 CloudFront 随时加载新内容 我将内容推送到我的 S3 存储桶?

    您可以使用 AWS Lambda 自动失效。去做这个;

    1. 创建一个 S3 事件触发器以在您将任何新内容上传到 S3 时调用 lambda 函数。
    2. 在 Lambda 函数中,使用 AWS CloudFront 开发工具包createInvalidation 方法编写代码以使 CloudFront 分配无效。

    注意:确保 Lambda 函数具有具有策略权限的 IAM 角色以在 CloudFront 中触发失效。

    【讨论】:

      【解决方案2】:

      您已使用缓存设置创建了 S3 源,或者您已将缓存标头添加到 S3 存储桶策略。

      如果您检查您的浏览器请求,您可以检查缓存标头以及它被缓存的原因。

      您可以找到http缓存头列表以及它们的使用方式here

      希望对你有帮助。

      【讨论】:

        【解决方案3】:

        Cloudfront 在边缘点保留缓存至少一小时。

        您可以做什么,正如docs 所建议的那样,您可以使用版本化文件。

        但是

        最热门页面的文件的新版本可能在 24 小时内无法提供,因为 CloudFront 可能在您用新版本替换文件之前检索了这些页面的文件

        所以我猜你最好的选择是失效。

        编辑:如果更改名称,您可以阻止版本化文件的缓存行为。

        【讨论】:

          猜你喜欢
          • 2017-01-23
          • 1970-01-01
          • 2014-09-04
          • 2015-07-21
          • 2018-02-17
          • 2021-06-05
          • 2012-10-31
          • 2019-05-03
          • 2019-05-01
          相关资源
          最近更新 更多