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

容器化AWS Lambda本地正常,部署到AWS后报错求助

容器化AWS Lambda部署后文件写入报错排查

问题根源

本地测试正常但Lambda部署后报错,核心原因是相对路径../tmp在Lambda环境中无效:

  • Lambda运行时,代码位于/var/task目录下,../tmp会解析到/var/tmp,而Lambda仅允许写入/tmp目录(这是平台提供的唯一可写临时目录)。
  • 本地测试时的目录结构与Lambda官方环境不一致,导致相对路径在本地能正常访问到临时目录,但部署后无法定位到正确的可写路径。

修复方案

方案1:使用绝对路径直接指向Lambda临时目录

将代码中的相对路径替换为绝对路径/tmp:

with open(os.path.join('/tmp', video_name), 'wb') as f:
    s3_client.download_fileobj('mybucketname', video_name, f)

方案2:通过环境变量动态获取临时目录(更健壮)

Lambda会自动设置TMPDIR环境变量指向合法的临时目录,通过该变量获取路径可以适配更多场景:

import os

tmp_dir = os.environ.get('TMPDIR', '/tmp')  #  fallback到/tmp防止环境变量缺失
with open(os.path.join(tmp_dir, video_name), 'wb') as f:
    s3_client.download_fileobj('mybucketname', video_name, f)

额外检查点

如果修改路径后仍报错,需确认:

  • Lambda执行角色是否拥有目标S3桶的s3:GetObject权限;
  • 目标视频文件在S3桶中确实存在,且video_name参数的取值与S3对象键完全一致(注意大小写、特殊字符)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:45:36