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

如何用Terraform配置AWS API Gateway兼容带/不带尾斜杠路径

解决API Gateway路径尾斜杠匹配问题

要让你的端点同时支持带/不带尾斜杠的访问,需要从API Gateway路径配置和Lambda内的路由规则两方面调整:

1. 补充Terraform的API Gateway路径映射

在api-gateway-vars.tf中,新增一条带尾斜杠的路径配置,和原路径指向同一个Lambda函数:

"/api/v1/dep/{proxy+}": 
{
"methods" : ["get"], "requireApiKey" : "false", "authorizer" : "false",
"lambda" : "something", "lambdaEnvVars" : {}
},
"/api/v1/dep/{proxy+}/": 
{
"methods" : ["get"], "requireApiKey" : "false", "authorizer" : "false",
"lambda" : "something", "lambdaEnvVars" : {}
}

这样API Gateway会同时匹配带/不带尾斜杠的请求路径。

2. 调整Lambda内的路由规则(以Flask类框架为例)

你的Python应用如果用的是Flask类路由框架,默认会严格匹配尾斜杠。需要在路由装饰器中添加strict_slashes=False参数,让框架本身也兼容两种格式的路径:

@api.route("/api/v1/dep/<path:data>", strict_slashes=False)

这个参数会让框架将/api/v1/dep/top和/api/v1/dep/top/视为同一个请求,转发到对应的处理函数。

可选:用API Gateway重定向统一路径

如果不想维护两条路径配置,可以在API Gateway中设置重定向规则,自动将带尾斜杠的请求重定向到不带的版本(或反之)。不过这种方式会返回3xx重定向响应,适合需要统一路径规范的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:22:05