API Gateway V2自定义域名后根路径访问失败问题排查
API Gateway V2 根路径访问404问题排查与解决
问题核心
你当前的/{proxy+}路由仅匹配包含至少一个子路径段的请求(如/account/profile),但/account属于单级路径,无法被该路由匹配。尝试的$default路由未生效,通常是路由优先级、集成配置或自定义域名映射的问题。
具体修复方案
1. 添加精确匹配/account的路由
直接创建一条精确匹配路由,确保/account请求能触发Lambda:
- 进入API Gateway控制台的「路由」页面,点击「创建路由」
- 路由类型选「精确」,路由键输入
/account - 关联与
/{proxy+}相同的Lambda集成 - 保存后重新部署API到目标阶段
2. 启用尾部斜杠自动处理(可选)
若希望/account和/account/都能被/{proxy+}匹配,可开启尾部斜杠重定向:
- 进入API Gateway的「设置」页面,找到「尾部斜杠行为」
- 选择「将无尾部斜杠的路径视为包含尾部斜杠」或「重定向到带尾部斜杠的路径」
- 保存并重新部署,此时
/account会被识别为/account/,符合/{proxy+}的匹配规则(需确保Lambda能处理带尾部斜杠的路径)
3. 检查自定义域名映射配置
确认自定义域名的API映射指向正确的API和阶段:
- 进入「自定义域名」页面,查看映射条目
- 验证映射的API是当前配置的实例,阶段为已部署状态(如
prod) - 若映射路径前缀设为
/account,则API的根路由(/)需配置对应集成,此时api.mydomain.com/account对应API的/路径
4. 验证Lambda代理集成的路径处理
如果使用Lambda代理集成,检查代码是否正确处理单级路径:
- 请求
/account时,event.path的值为/account - 确保Lambda代码没有仅处理带子路径的
path,需覆盖单级路径的逻辑
5. 部署与日志验证
- 所有配置修改后必须重新部署API,否则变更不生效
- 使用API Gateway控制台的「测试」功能,直接测试
/account路径,确认是否触发Lambda - 查看CloudWatch中的API Gateway访问日志,确认请求的路由匹配结果,定位是否有路由未命中的情况
内容的提问来源于stack exchange,提问作者ChrisBratherton
相关产品推荐
相关产品推荐

