在亚马逊文档中,他们说
失效请求 您每月请求失效的前 1,000 个文件不收取额外费用。此后在您的失效请求中列出的每个文件 0.005 美元。
是不是表示如果我使用www.cloudfront.net/abc.jpg
1000次,图像不存在,我会被收费?
在亚马逊文档中,他们说
失效请求 您每月请求失效的前 1,000 个文件不收取额外费用。此后在您的失效请求中列出的每个文件 0.005 美元。
是不是表示如果我使用www.cloudfront.net/abc.jpg
1000次,图像不存在,我会被收费?
CloudFront 收到的针对不存在对象的请求仍然是请求,因此将按您当前所处的任何成本等级收费。(当您有大量请求时,请求会更便宜。)
如果您尝试使一个不存在的对象失效,它仍将计入您的免费失效配额(如果您超出文档中提到的 1000 个/月的限制,则会被收费)。
Mike B 的评论是正确的,更详细的解释如下:
Amazon CloudFront提供对无效对象的支持:
如果您需要在对象过期之前从 CloudFront 边缘服务器缓存中删除它,您可以执行以下操作之一:
使对象无效。下次最终用户请求对象时,CloudFront 会返回源以获取对象的最新版本。
使用对象版本控制提供具有不同名称的对象的不同版本。有关详细信息,请参阅使用版本化对象名称更新现有对象。
[强调我的]
也就是说,这只是一项支持 CloudFront 边缘服务器缓存中对象生命周期的功能,与HTTP 404(未找到)状态代码没有任何关系。
因此,您不会为您描述的场景付费。
如果您现在可能也在考虑使用 CloudFront 失效,请注意两个相关的常见问题解答:
我可以提出的无效请求数量是否有限制?-您可以无效的对象总数没有限制;但是,您发出的每个失效请求最多可以有 1,000 个对象。此外,在任何给定时间,您只能有 3 个正在进行的无效请求。[...]您应该只在意外情况下使用失效;如果您事先知道您的文件需要经常从缓存中删除,建议您为文件实施版本控制系统和/或设置较短的有效期。[强调我的]
Amazon CloudFront 的价格是多少?- [...] 您每个月最多可以使 Amazon CloudFront 中的 1,000 个文件无效,无需额外付费。除了前 1,000 个文件之外,您需要为无效请求中列出的每个文件支付每个文件的费用。您可以在此处查看无效请求的费率。
因此,定价反映了此功能并非旨在成为常规缓存控制机制,而只是用于带外失效需求。