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

调用AWS API Gateway Websocket的$default路由遇403错误求助

问题分析与解决方案
  • 你混淆了API Gateway的两种类型规则:你参考的是HTTP API的路由文档,但实际使用的是Websocket API,两者的$default路由逻辑完全不同,HTTP API的$default规则不适用于Websocket API。

  • Websocket API的$default路由仅针对已建立连接后的消息生效,而非普通HTTPS请求。你直接发送HTTPS GET/POST请求的方式,本质是尝试调用Websocket的握手接口,而非发送Websocket消息,这种请求不会触发任何消息路由(包括$default),这就是你收到403错误的核心原因。

  • 正确触发$default路由的方式:

    • 先通过WebSocket协议(wss://你的自定义域名/阶段 或 wss://{api-id}.execute-api.{region}.amazonaws.com/{stage})建立连接;
    • 连接建立后,在连接内发送包含action字段的JSON格式消息,当action值不匹配任何已定义路由时,请求才会转发到$default路由对应的Lambda函数。
  • 额外排查方向:

    • 如果握手阶段出现403,检查自定义域名的SSL证书是否有效、API Gateway阶段是否正确部署、是否启用了IAM认证但请求未携带合法凭证;
    • 如果是消息发送阶段的问题,确认消息体的action字段位置是否符合路由配置(你设置的是$request.body.action,所以消息体必须是标准JSON且包含该字段)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:37:10