在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




