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

使用Node.js版AWS S3 SDK搭配Lambda时出现超时响应问题

Lambda调用S3超时问题解决

问题根源

你的Lambda配置在默认VPC中,默认情况下VPC内的Lambda没有弹性公网IP,无法直接访问S3的公网服务端点,导致请求一直卡住直到超时——哪怕已经给Lambda角色附加了S3全访问权限,网络层面的限制依然会阻断请求。

解决方案

方案1:将Lambda移出VPC

如果你的Lambda不需要访问VPC内的其他资源(比如RDS、EC2等),直接修改Lambda的网络配置,取消关联VPC。这样Lambda会运行在AWS的托管网络中,自动获得公网访问能力,就能正常调用S3。

方案2:配置S3 VPC网关端点

在VPC中创建S3的网关类型端点,让Lambda通过内网访问S3,无需公网IP:

  • 进入VPC控制台,找到「端点」页面,点击「创建端点」
  • 服务类别选择「AWS服务」,找到S3对应的网关服务(名称通常是com.amazonaws.<区域>.s3)
  • 选择Lambda所在的子网和路由表,完成创建后,VPC内的Lambda就能通过内网访问S3

方案3:配置NAT网关(适用于需要同时访问VPC内资源和公网的场景)

如果Lambda需要访问VPC内资源的同时还要访问公网服务,可以给Lambda所在的子网配置NAT网关:

  • 在VPC的公有子网中创建NAT网关并分配弹性公网IP
  • 修改Lambda所在私有子网的路由表,将0.0.0.0/0的流量指向NAT网关
  • 这样Lambda就能通过NAT网关访问公网的S3端点

额外验证

确认代码中的Bucket名称和Key路径完全正确,避免因资源不存在导致的隐性问题,但从超时错误来看,核心问题还是网络连通性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:57:06