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

AWS Lambda连接DocumentDb实例报MongoServerSelectionError: getaddrinfo EAI_AGAIN错误

问题根因

你遇到的MongoServerSelectionError: getaddrinfo EAI_AGAIN报错本质是Lambda运行环境无法解析DocumentDB的私有域名,即便二者处于同一VPC,也会因为配置疏漏出现该问题,本地能正常连接是因为你的本地环境要么通过VPC peering、VPN等方式接入了目标VPC,且配置了正确的DNS/安全组规则。
常见原因如下:

  • VPC未开启DNS解析与DNS主机名配置,导致VPC内部无法解析DocumentDB的私有域名
  • Lambda的VPC绑定配置错误:绑定的子网不属于目标VPC,或Lambda安全组的出站规则未放行到DocumentDB 27017端口的流量
  • DocumentDB的安全组入站规则未放行Lambda安全组的27017端口访问,仅放行了你本地的公网IP
  • 你代码中引用的rds-combined-ca-bundle.pem证书文件未随代码一起打包到Lambda部署包中,导致连接初始化失败(该问题后续也可能触发同类连接报错)
排查步骤
  1. 进入AWS VPC控制台,找到DocumentDB所在的VPC,查看属性确认DNS解析、DNS主机名两个选项均为已启用状态
  2. 检查Lambda的VPC配置,确认绑定的VPC、子网与DocumentDB完全一致,Lambda安全组的出站规则允许TCP 27017端口的访问请求
  3. 检查DocumentDB的安全组入站规则,确认已添加允许Lambda安全组访问27017端口的规则
  4. 核对Lambda部署包的文件结构,确认rds-combined-ca-bundle.pem文件位于代码根目录,和入口js文件同级
解决方案
  • 若VPC DNS配置未开启:在VPC属性页开启两项DNS配置,等待5分钟后重试连接
  • 若安全组配置错误:修改Lambda出站规则、DocumentDB入站规则,放行27017端口的双向访问
  • 若证书缺失:将RDS根证书文件和业务代码一起打包后重新部署Lambda
  • 额外优化:将MongoClient实例初始化逻辑移到handler函数外部,利用Lambda执行环境复用能力避免每次调用都重建连接,同时可以在MongoClient配置中添加connectTimeoutMS: 10000, serverSelectionTimeoutMS: 10000参数降低超时概率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:30:01