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

使用Boto3 S3客户端调用download_file为何出现Lambda任务超时错误

问题解答

1 Object Name的正确写法

存储桶内没有嵌套文件夹的情况下,Object Name就是文件本身的名称DataPump_10000838.zip,你第一种传三个参数的写法符合download_file的API要求,第二种仅传两个参数的写法是错误的,download_file要求必须传入桶名、对象名、本地存储路径三个必填位置参数。

2 超时问题的根因排查

按优先级从高到低排查:

  • Lambda默认超时时间过短
    你报错显示任务3.06秒就触发超时,Lambda默认超时时间是3秒,只要你的zip包体积稍大,3秒内无法完成下载就会触发该错误。你可以在Lambda配置页把超时时间调整到匹配文件大小的数值,最高可设置为15分钟。
  • 下载路径写入权限错误
    download_file的第三个参数是本地存储路径,Lambda的运行环境中仅/tmp目录是可写的,你直接写文件名会尝试写入只读的运行工作目录,写入失败会导致进程卡住最终超时。正确的写法应该是:
s3.download_file('testunzipping','DataPump_10000838.zip','/tmp/DataPump_10000838.zip')
  • IAM权限配置错误
    你提供的s3:GetObject权限策略存在资源配置错误:s3:GetObject是对象级操作,对应的资源ARN必须指定到桶内对象,你当前写的是桶本身的ARN,权限不生效。正确的资源配置应该是:
"Resource": [
    "arn:aws:s3:::testunzipping/*"
]

就算你配置了S3FullAccess,也要检查是否有权限边界、资源限制等规则拦截了对象读取操作。

  • VPC网络访问限制
    如果你的Lambda配置了VPC,默认无法访问公网的S3服务,会导致请求卡住超时。需要给VPC配置S3网关端点,或者给Lambda所在子网配置NAT网关才能正常访问S3。
    你提到list_objects可以正常执行,可优先排查前三个问题,前三个是最高概率的触发原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:24:03