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

Serverless Framework调用DynamoDB报MissingRequiredParameter错误如何解决

错误原因
  • 调用dynamodb.update()方法时参数多套了一层对象:代码中传入的是dynamodb.update({params}),最终传给SDK的结构是{ params: { TableName: xxx, Key: xxx } },SDK要求TableName、Key这类必填参数放在参数对象顶层,自然会抛出缺失必填参数的错误。
  • DocumentClient参数写法不符合规范:DynamoDB的DocumentClient已经封装了原生的类型映射逻辑,不需要手动指定{S: xxx}这类类型标识,你在Key和ExpressionAttributeValues里加的类型标注是原生DynamoDB客户端的用法,即使第一层参数问题修复后也会触发格式错误。
修复方法
  1. 去掉update方法传参时多余的外层包裹,将dynamodb.update({params})修改为dynamodb.update(params)
  2. 调整params内部的Key和ExpressionAttributeValues写法,移除手动添加的类型标识

修复后的对应代码片段如下:

const params = {
  TableName: process.env.AUCTIONS_TABLE_NAME,
  Key: {
    id: id
  },
  UpdateExpression: "set highestBid.amount = :amount",
  ExpressionAttributeValues: {
    ":amount": amount,
  },
  ReturnValues: "UPDATED_NEW"
};

let updatedAuction;
try {
  const result = await dynamodb.update(params).promise();
  console.log({result});
  updatedAuction = result.Attributes;
} catch(e) {
  console.log({'error': e});
  throw new createError.InternalServerError(e); 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 04:45:03