You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Lambda调用CloudFront createInvalidation清空所有缓存?

针对CloudFront缓存失效配置的问题解答

1. Quantity参数配置说明

  • 你不需要填写偏大的数值,也完全不需要统计S3存储桶的文件总数。Quantity字段的值必须和Items数组中实际包含的路径条目数完全一致,否则调用API时会直接返回参数校验错误。
  • 你当前场景下Items数组只需要1个通配符路径,因此Quantity直接填1即可。

2. Items数组配置说明

  • 可以直接将"/*"作为Items数组的唯一元素,这个通配符会匹配该CloudFront分发下所有路径的所有缓存内容,完全满足你全量更新后清全部缓存的需求。
  • 不能直接传"/*"字符串替代数组,AWS JS SDK 对createInvalidation的参数有严格的类型校验,Items字段必须是数组类型,即使只有一个元素也必须用数组包裹。

正确的参数示例

const invalidationParams = {
    DistributionId: "XXXX",
    InvalidationBatch: {
        CallerReference: Date.now().toString(),
        Paths: {
            Quantity: 1,
            Items: [
                "/*"
            ]
        }
    }
};

循环调用CLI方案的适用性

不推荐使用该方案,原因如下:

  • 你的场景需要集成到Step Function中,Lambda直接调用SDK原生API比调用CLI更稳定,没有额外的子进程开销,也不需要处理CLI安装、输出解析、错误捕获等额外问题。
  • 单条"/*"的失效请求就可以覆盖全量清缓存的需求,完全不需要循环调用,循环调用反而会产生大量无效的失效请求,还可能触发CloudFront的失效请求频率配额限制,反而影响业务正常更新。

内容的提问来源于stack exchange,提问作者Noah Gray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:06:01