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

AWS部署Hasura REST API返回404 Cannot GET /api/rest/*排查

Routes Image

调用接口返回的错误响应:

{
    "statusCode": 404,
    "message": "Cannot GET /api/rest/get-profile-photo"
}
问题排查与解决方案

首先明确:这个错误响应格式是NestJS框架默认的404返回结构,不是Hasura抛出的错误,说明请求根本没到达Hasura的REST接口处理逻辑,按优先级从高到低排查即可:

  • 优先排查NestJS层路由/代理配置
    如果你架构里是请求先到NestJS再转发给Hasura,先检查NestJS的全局路由前缀、代理中间件规则:大概率是没有配置/api/rest/**路径的转发规则,NestJS在自身路由表里找不到匹配接口,直接返回了默认404。给对应路径配置正确的反向代理,指向Fargate内网中的Hasura服务地址即可。
  • 其次排查API Gateway路径转发规则
    如果请求链路是API网关直接转Fargate服务,检查API Gateway的集成配置:
    • 不要开启多余的路径覆盖,确保请求路径/api/rest/get-profile-photo被完整透传到后端服务
    • 如果API网关配置了路由前缀(比如用/hasura/*路由匹配Hasura相关请求),要配置路径重写规则,把多余的前缀(比如/hasura)剔除后再转发给后端,避免路径不匹配
  • 再排查Hasura线上元数据同步问题
    跳过API网关、NestJS,直接在VPC内调用Fargate上部署的Hasura实例地址,访问对应REST接口,如果仍然返回404,说明线上Hasura没有同步本地的REST端点配置:进入线上Hasura控制台,重新导入元数据,确认REST端点列表中存在/api/rest/get-profile-photo接口,且请求方法配置为GET。
  • 最后排查负载均衡/安全组路由
    如果Fargate前配置了ALB,检查ALB的转发规则,确认/api/*路径的请求被转发到Hasura服务对应的目标组端口,不要错转到NestJS服务的端口(如果两个服务独立部署)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:39:19