如何清除API Gateway关联的AWS CloudFront缓存?
解决API Gateway关联CloudFront缓存导致的401错误问题
为什么会出现CloudFront缓存标识?
API Gateway的默认域名(如someid.execute-api.us-east-1.amazonaws.com/Prod)由AWS托管的CloudFront分发提供支持,这类CloudFront实例不会显示在你的AWS账户资源列表中,属于AWS后台管理的基础设施。
清除缓存状态的可行方案:
禁用并刷新API Gateway阶段缓存
- 登录AWS控制台进入API Gateway,找到目标API和对应的
Prod阶段 - 进入阶段的「缓存」配置页面,确认缓存是否处于启用状态。如果是,先关闭缓存
- 点击「刷新缓存」按钮,输入路径
/*来清空该阶段下所有路径的缓存
- 登录AWS控制台进入API Gateway,找到目标API和对应的
强制绕过缓存发起请求
在POST请求的请求头中添加Cache-Control: no-cache或Pragma: no-cache,强制CloudFront忽略缓存直接回源调用Lambda;也可以修改请求体的少量内容(比如添加一个无关参数),让缓存键不匹配现有缓存条目等待缓存自然过期
AWS托管的CloudFront对错误响应的缓存TTL通常较短(一般数小时内),若无法立即操作控制台,可等待缓存自动过期后再发起请求检查授权器缓存(若使用)
如果API配置了自定义授权器,检查授权器的缓存设置,必要时刷新授权器的缓存——部分401错误可能来自授权器的缓存结果,而非Lambda或API Gateway本身
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

