API Gateway路由优先级不符合预期问题排查求助
问题分析与可能原因
根据AWS API Gateway官方定义的路由匹配优先级:
- 路由路径与请求方法完全匹配
- 带贪婪路径变量(
{proxy+})的路由与方法匹配$default路由
你的POST请求curl -X POST --data @auth.json https://XYZ.execute-api.us-west-2.amazonaws.com/MY-stage/auth本该匹配/auth对应的Lambda函数,却被/{entity}拦截,常见原因如下:
- /auth路由未配置POST方法:检查
/auth路由的方法配置,若只开启了GET、PUT等其他方法,没有POST,那么POST请求找不到完全匹配的路由,就会匹配到开启了POST(或ANY)方法的/{entity}路由。 - /auth路由路径配置错误:比如实际配置的路径是
/auth/(带末尾斜杠),或者路径中存在空格、拼写错误(如/aut),导致请求的/auth无法匹配到该路由,转而匹配/{entity}。 - /auth路由未部署到目标阶段:控制台中看到的路由配置如果没有部署到
MY-stage阶段,该阶段实际生效的只有/{entity}路由,自然会被它拦截。 - /{entity}路由配置了ANY方法:如果
/{entity}路由的方法设为ANY,而/auth路由只配置了特定方法(比如GET),POST请求会优先匹配到支持ANY的/{entity}路由。 - 路径大小写不匹配:API Gateway路径匹配默认区分大小写,若
/auth路由实际配置为/Auth或/AUTH,小写的请求路径/auth无法匹配,就会被/{entity}捕获。
内容的提问来源于stack exchange,提问作者grayaii
相关产品推荐
相关产品推荐

