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

使用路由参数时CloudFront为何不转发查询字符串?

问题原因及解决方法

核心原因

这事儿的根儿在CloudFront的缓存策略和源请求策略的功能混淆,以及带路径参数的API路由和CloudFront转发逻辑的冲突:

  • 你配置的缓存策略只负责生成CloudFront的缓存键(决定哪些请求会命中同一缓存),根本管不了把哪些查询字符串转发到后端的API Gateway。
  • 对于静态路径/route1,CloudFront默认会顺手把查询字符串转发过去,所以Lambda能拿到myquery;但对于带路径参数的/route2/{param},CloudFront在处理路径参数匹配时,会严格遵循默认的转发规则——如果没明确配置要转发myquery,它就不会把这个参数传给API Gateway,自然Lambda负载里就没了。
  • 直接调API的时候绕开了CloudFront,API Gateway会原封不动把所有查询字符串传给Lambda,所以一切正常。

解决步骤

  • 登录CloudFront控制台,创建或修改一个源请求策略,在「转发的查询字符串」列表里明确添加myquery。
  • 将这个源请求策略绑定到对应CloudFront分发的行为(Behavior)上,确保所有请求(包括带路径参数的)都能把myquery转发给API Gateway。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:05:42