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

Python搭建WebSocket API时Lambda出现connectionid键错误如何解决?

解决WebSocket连接Lambda的KeyError: 'connectionid'问题

问题根源

报错的核心原因是AWS API Gateway传递给Lambda的WebSocket事件中,连接ID的键名是驼峰式的connectionId,而你代码里用了全小写的connectionid,导致找不到对应键值抛出KeyError。

修改后的代码

把代码中获取连接ID的部分改为驼峰式的键名,同时修正返回格式(API Gateway要求返回包含statusCode的响应,否则可能触发额外异常):

import json
import boto3
import os

dynamodb = boto3.client('dynamodb')

def lambda_handler(event, context):
    # 修正键名为AWS标准的驼峰格式connectionId
    connection_id = event['requestContext']['connectionId']

    dynamodb.put_item(
        TableName=os.environ['WEBSOCKET_TABLE'],
        Item={'connectionid': {'S': connection_id}}
    )

    # 返回符合API Gateway要求的响应
    return {'statusCode': 200}

额外检查项

  • 确认DynamoDB表的主键字段名与代码中Item里的connectionid一致,如果表字段是驼峰式connectionId,也要同步修改Item中的键名
  • 验证Lambda执行角色是否拥有DynamoDB的PutItem权限
  • 检查API Gateway的WebSocket路由是否正确关联到该Lambda函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:12:35