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

API Gateway对接Lambda删除DynamoDB数据报错如何修复?

错误修复方案

错误2 修复(TypeError: Cannot destructure property 'ClientID' of 'event.pathParameters' as it is undefined)

这个错误是API Gateway没有正确传递路径参数到Lambda导致的,按以下步骤修复:

  • 检查API Gateway删除接口的资源路径配置,必须添加两个路径参数占位符,示例路径:/case/{ClientID}/{CaseID},占位符拼写严格区分大小写,和代码中保持完全一致
  • 确保Lambda集成开启了Lambda代理集成,开启后API Gateway会自动将路径参数写入event.pathParameters字段;如果未开启代理集成,需要在集成请求的映射模板中手动配置路径参数映射
  • 代码中添加空值兼容逻辑,避免直接解构空对象报错

错误1 修复(ValidationException: The provided key element does not match the schema)

这个错误是传给DynamoDB的主键不符合表结构定义导致的,按以下步骤修复:

  • 确认DynamoDB表ClientID(分区键)和CaseID(排序键)的定义数据类型,如果你表中定义的是数字类型(N),传字符串类型的参数就会触发校验失败,DynamoDB DocumentClient要求传入的键值类型和表定义完全匹配
  • 调用接口时必须同时传入两个路径参数,缺一不可,任意一个参数为空都会触发该错误
  • 确认代码中Key下的两个键名ClientID、CaseID和表定义的键名拼写、大小写完全一致

其他代码问题修复

你现有代码中delete操作的返回值处理存在错误:DynamoDB的delete操作返回结果中不存在data.Items字段,且204状态码约定不返回响应体,需要对应调整。


修复后完整代码

'use strict';
const AWS = require('aws-sdk');

exports.handler = async (event, context) => {
  const documentClient = new AWS.DynamoDB.DocumentClient();

  let responseBody = "";
  let statusCode = 0;
  
  // 兼容pathParameters为空的情况
  const pathParams = event.pathParameters || {};
  const {ClientID, CaseID} = pathParams;

  // 提前校验参数是否存在
  if (!ClientID || !CaseID) {
    responseBody = JSON.stringify({message: "缺少必填参数ClientID或CaseID"});
    statusCode = 400;
  } else {
    const params = {
      TableName: "Case",
      Key: {
       ClientID: ClientID,
       CaseID: CaseID
      }
    };
    
    try {
      await documentClient.delete(params).promise();
      // 204状态码不需要返回body,也可以改成200返回成功提示
      statusCode = 204;
    } catch(err) {
      responseBody = `Unable to delete Case: ${err}`;
      statusCode = 403;
    }
  }

  const response = {
    statusCode: statusCode,
    headers: {
      "Content-Type": "application/json",
      "access-control-allow-origin":"*"
    },
    body: responseBody
  };

  return response;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:54:03