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

API Gateway复合键查询DynamoDB遇SerializationException问题排查

问题原因与解决方案

核心问题:映射模板的JSON格式非法

你遇到的SerializationException是因为API Gateway生成的请求JSON格式不符合DynamoDB的要求——你的映射模板里错误使用了类似JavaScript对象的赋值语法(={...}),而DynamoDB需要严格遵循JSON规范的请求体。

错误模板的具体问题

原模板中ExpressionAttributeNames和ExpressionAttributeValues的写法违反JSON语法:

// 错误写法
ExpressionAttributeNames={
  "#goalId": "goalId",
  "#cohortId": "cohortId"
},
ExpressionAttributeValues={
  ":goalId": { "S": "$input.params('goalid')" },
  ":cohortId": { "S": "$input.params('cohortId')" }
}

JSON要求键名必须用双引号包裹,键值对用冒号(:)分隔,而非等号(=)。这种语法错误会导致生成的请求体为非法JSON,DynamoDB无法解析,进而抛出序列化异常。

修正后的映射模板

将模板修改为标准JSON格式即可:

{
  "TableName": "cohort",
  "KeyConditionExpression": "#goalId = :goalId AND #cohortId = :cohortId",
  "ExpressionAttributeNames": {
    "#goalId": "goalId",
    "#cohortId": "cohortId"
  },
  "ExpressionAttributeValues": {
    ":goalId": { "S": "$input.params('goalid')" },
    ":cohortId": { "S": "$input.params('cohortId')" }
  }
}

额外验证建议

  1. 确认API Gateway集成请求的内容类型设置为application/json,避免格式解析冲突。
  2. 重新查看API Gateway执行日志,确认转换后的请求体是完全合法的JSON(无语法错误)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:25:10