AWS Lambda连接AWS DocumentDB出现超时错误如何排查
配置类排查点
- 安全组规则验证:仅配置Lambda和DocumentDB同属一个安全组无法保证互通,需要确认安全组的入站规则已开放27017端口,且允许的来源为Lambda所属的安全组ID。自定义安全组默认不开启同组内资源互通规则,需手动配置。
- VPC归属校验:DocumentDB默认不开放公网访问,需确认Lambda已部署在与DocumentDB相同的VPC下的私有子网中,且子网路由表配置允许VPC内部流量互通。
- 证书文件校验:连接字符串中指定了
tlsCAFile=rds-combined-ca-bundle.pem,需确认该AWS RDS根证书文件已打包到Lambda的部署包根目录下,否则TLS握手失败会触发连接超时。 - 集群参数校验:需确认代码中填写的DocumentDB集群端点、用户名、密码均为实际有效值,而非占位符;同时检查控制台中DocumentDB集群状态为正常运行。
代码类排查点
- 异步逻辑错误:Lambda处理函数为async类型,但代码中调用
mongoClient.get()时未加await,仅通过.then处理返回值,会导致Lambda在异步逻辑执行完成前就销毁运行环境,连接未建立完成就被中断。需修改为await方式等待数据库操作完成后再返回响应。 - 驱动版本兼容问题:DocumentDB对MongoDB驱动版本存在兼容限制,请勿使用过高版本的驱动,建议使用3.7.x版本的mongodb npm包,过高版本的驱动部分特性不被DocumentDB支持,会触发连接异常。
内容的提问来源于stack exchange,提问作者Lakshman Pilaka
相关产品推荐
相关产品推荐

