使 CloudFront 分配无效时通配符/无通配符之间的区别

使 CloudFront 分配无效时通配符/无通配符之间的区别

以下是在部署过程中执行的脚本示例,用于使 CloudFront 分发无效。目标是使整个分发中的所有内容无效,因此我们将其用作/路径。

aws cloudfront create-invalidation --distribution-id SOMEDISTRIBUTIONID --paths /

CloudFront 无效文档建议失效路径使用通配符,如下所示:

aws cloudfront create-invalidation --distribution-id SOMEDISTRIBUTIONID --paths "/*"

这两种路径论证有什么区别?它们都是使一切无效,还是都无效?价格有区别吗?

答案1

除非是未记录的特殊情况,否则无效/只会使主页无效。

请注意,从 shell 中,需要引用'/*'以防止 shell 扩展。

没有价格差异。所有无效化的费用相同根据指定的路径,路径是否匹配 0 个、1 个、多个还是所有文件。

价格相同且匹配一个或全部都没有区别的原因并未说明,但推测是失效会做两件不同的事情 - 它们最初在分布上设置带有时间戳的标记记录,当缓存命中时会进行检查,如果对象与失效记录匹配且早于时间戳,则命中变为未命中。然后在后台清除对象并删除标记。如果是真的,这是一个绝妙的设计,而且它几乎必须是这样的,因为失效非常快,即使对于也是如此/*

每个 AWS 账户(而不是每个分配)每月提交的前 1,000 条无效路径是免费的。

答案2

AWS 新手须知

  • 如果您使多条路径无效,则每条路径都需要付费,因此通配符会更便宜。

  • 但是“正在进行”的通配符失效的限制非常低(约 15),而单个文件的相同限制却相当高(约 3000?)。因此,如果您计划在一分钟内提交许多通配符失效,您将需要一个队列和处理器,这可能会抵消成本节省。

相关内容