You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在AWS API Gateway搭建基础WebSocket模拟时遇500错误求助

解决AWS API Gateway WebSocket $connect路由500错误:statusCode配置问题

从你贴的错误日志里一眼就能揪出问题核心:Execution failed due to configuration error: statusCode should be an integer which defined in request template。哪怕你想搭一个最“躺平”的WebSocket服务,AWS API Gateway的$connect路由也有个硬性要求——必须返回一个有效的HTTP状态码来确认握手成功,哪怕只是最简单的200。

给你一套极简的修复步骤,完全符合你“无授权、无复杂模板”的需求:

  • 打开你的WebSocket API控制台,找到$connect路由的集成设置
  • 切换到「集成响应」标签页,点击「添加集成响应」
  • 只需要填一个字段:状态码设为200,其他所有配置保持默认(不需要任何映射模板、响应头)
  • 最后一定要点击顶部的「部署API」,选择你的prod阶段让配置生效

如果之后你打算用Lambda来处理连接(比如返回ping/pong),哪怕是最极简的Lambda函数,也要确保返回的响应里包含statusCode字段,比如:

def lambda_handler(event, context):
    # 啥逻辑都不用加,只要返回200状态码就行
    return {'statusCode': 200}

为啥会踩这个坑?

AWS API Gateway的WebSocket握手流程必须收到明确的状态码确认,哪怕你没有任何业务逻辑要处理,网关也不能自己“猜”该返回什么给客户端。你之前跳过了集成响应的配置,网关找不到合法的状态码返回,直接就抛出500错误了。按上面的步骤配置完,就能正常建立WebSocket连接了。

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

火山引擎 最新活动