AWS Lambda函数下载S3小文件超时问题排查求助
Lambda从S3下载文件超时问题解决
核心问题修正
你的代码中transformToString()是异步方法,但未使用await等待其执行完成,导致返回的是未解析的Promise,后续流程无法正确获取SQL内容,最终引发Lambda函数超时。
修正后的代码:
const { GetObjectCommand, S3Client } = require("@aws-sdk/client-s3"); async function getResourceFromS3() { const s3Client = new S3Client({}); const command = new GetObjectCommand({ Bucket: "devops-yamls", Key: "resource/test-init.sql" }); const s3Response = await s3Client.send(command); // 关键:添加await等待字符串转换完成 const sqlStatement = await s3Response.Body.transformToString(); return sqlStatement; }
额外排查方向
- IAM权限验证:确认Lambda执行角色拥有
s3:GetObject权限,权限缺失可能导致隐性请求阻塞。 - VPC网络配置:如果Lambda部署在VPC内,需确保VPC配置了S3网关端点,或通过NAT网关能访问公网,网络不通会直接导致S3请求超时。
内容的提问来源于stack exchange,提问作者Ádám Sütő
相关产品推荐
相关产品推荐

