VPC内Node.js Lambda访问S3遇ETIMEDOUT,如何指定S3端点?
配置Lambda使用已有的S3 VPC端点
无需修改代码,只需确保Lambda的网络配置满足以下要求:
确认Lambda的VPC归属
- 进入Lambda控制台,找到目标函数,切换到「配置」标签页的「VPC」模块
- 确保函数部署在包含
dev-s3-gateway端点的VPC中。若当前不在,需重新配置VPC,选择对应VPC的子网和安全组
检查安全组权限
- Lambda关联的安全组需允许出站访问S3(网关端点走VPC内网,无需互联网网关,但安全组要放行到S3的出站流量)
- 若
dev-s3-gateway端点设置了自定义策略,需确保策略允许Lambda的执行角色访问目标S3资源
验证路由表配置
- 确认该VPC的路由表中,已添加指向
dev-s3-gateway的路由,目标为com.amazonaws.us-east-1.s3对应的前缀列表(格式为pl-xxxxxx,AWS会自动关联) - Lambda所在的子网必须关联此包含端点路由的路由表
- 确认该VPC的路由表中,已添加指向
代码保持原样
继续使用s3.amazonaws.com或AWS SDK默认的S3域名即可,VPC内网DNS会自动将请求解析到该网关端点,无需手动指定端点地址
完成上述配置后,Lambda即可通过VPC内网访问S3,解决ETIMEDOUT错误。
内容的提问来源于stack exchange,提问作者ablaszkiewicz1
相关产品推荐
相关产品推荐

