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

Lambda函数向PostgreSQL插入数据时TypeError问题排查

解决:TypeError: "The 'string' argument must be of type string or an instance of Buffer or ArrayBuffer. Received an instance of Promise"

问题场景

使用 Node.js 16.17.0、AWS Lambda 默认 AWS SDK 及 pg@^8.7.3,通过 s3.getObject(params).promise() 获取 S3 中的 JSON 文件内容后尝试插入 PostgreSQL 数据库(此前用测试数据成功插入过5000行),执行代码时触发上述 TypeError。试过手动创建 Promise、使用 .then() 等方法都无效,曾怀疑版本问题但未找到相关解决方案。

核心错误原因

  • 异步令牌获取未正确等待:getToken 是异步函数,但获取 token 时未添加 await,导致传给 pg Pool 的 password 参数是 Promise 实例,而非预期的字符串格式 RDS 认证令牌。
  • 数据解析逻辑错误:解析 S3 返回体后,错误地再次访问 results.results[0]['items'] 并转为字符串,导致后续代码无法正确读取数组元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:15:40