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

Lambda调用DynamoDB Scan报错却返回正确记录的原因咨询

问题原因解析

报错的直接原因

你的DynamoDB Scan请求里,把:nitin_nature指定为数值类型({'N': search_term}),但CloudWatch触发时传入的search_term并不是合法的数值(比如是字符串格式的数字,或者完全非数字的内容),DynamoDB无法将其转换为数值类型,因此抛出ValidationException。

为何Function URL访问能正常返回?

有两种最可能的情况:

  • 输入参数类型不一致:Function URL触发时,传入的search_term是真正的数值类型(不是字符串),满足DynamoDB对N类型值的要求,所以Scan请求能顺利执行并返回正确数据。
  • 错误处理逻辑兜底:你的Lambda函数里大概率写了try-except代码块,捕获了这个ClientError,并在报错后执行了备用逻辑——比如改用字符串匹配规则、返回提前缓存的正确数据,或者直接跳过错误返回已有结果,所以即便CloudWatch触发时报错,函数依然能执行完成并返回内容。

验证方法

  • 分别打印两种触发场景下search_term的类型和具体值,确认参数差异。
  • 检查函数代码中的异常处理部分,看是否存在针对该错误的兜底逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:59:54