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

FastAPI本地正常,部署AWS Lambda后/blogs端点重定向循环问题

问题原因

FastAPI 默认会对不带末尾斜杠的路由(如/blogs)自动返回307重定向,引导请求到带末尾斜杠的版本(/blogs/)。但在AWS Lambda URL环境中,重定向后的请求路径被解析时可能丢失末尾斜杠,导致请求再次触发重定向,形成无限循环,最终出现「Too many redirects」错误。而带具体ID的路由(如/blogs/1)不存在末尾斜杠的重定向逻辑,因此可以正常响应。

解决方法

方法1:全局禁用FastAPI的自动斜杠重定向

在初始化FastAPI应用时添加redirect_slashes=False参数,关闭全局自动重定向行为,让/blogs和/blogs/都能匹配到对应路由:

from fastapi import FastAPI

app = FastAPI(redirect_slashes=False)

方法2:针对单个路由禁用重定向

如果不想全局修改,可以在/blogs路由定义时单独设置redirect_slashes=False:

@app.get("/blogs", redirect_slashes=False)
async def fetch_blogs():
    # 你的业务逻辑代码

方法3:统一路由路径格式

将路由定义为带末尾斜杠的形式(/blogs/),同时确保请求时使用带斜杠的路径。不过这种方法需要调整所有相关请求的路径,灵活性不如前两种。

验证步骤
  1. 修改代码后,重新打包成.zip归档
  2. 重新部署到AWS Lambda
  3. 测试https://<lambda-url>/blogs和https://<lambda-url>/blogs/,确认两者都能正常返回响应,不再触发重定向循环

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:03:17