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

Lambda从S3桶下载的文件无法在/tmp目录查看问题求助

AWS Lambda 从S3下载文件后/tmp目录为空排查方案
  • 首先检查下载操作是否抛出了未感知的异常
    你的代码仅在异常分支做了print(e)输出,错误信息只会记录在Lambda对应的CloudWatch日志组中,不会在测试返回结果里展示。请先查看CloudWatch日志确认是否有如下常见报错:

    存储桶名称拼写错误、S3对象Key大小写不匹配、文件大小超过Lambda /tmp目录512MB上限、跨区域S3访问权限限制、存储桶策略显式拒绝Lambda执行角色访问

  • 补充文件存在性校验逻辑
    你可以在download_file调用后增加本地文件校验代码,直接确认文件是否写入成功,修改后的参考代码如下:
    import csv
    import boto3
    import os
    
    s3_client = boto3.client('s3')
    s3_resource = boto3.resource('s3')
    
    def lambda_handler(event, context):
        bucket = 'test-bucket'
        key = 'data/original_file1.csv'
        try:
            temp_path= '/tmp/test_file.csv'
            s3_resource.Bucket(bucket).download_file(key,temp_path)
            # 新增校验逻辑,输出/tmp目录文件列表到日志
            print("/tmp目录文件列表:", os.listdir('/tmp'))
            print("目标文件大小:", os.path.getsize(temp_path))
            
            response = s3_client.get_object(Bucket=bucket, Key=key)
            return response['ContentType']
            
        except Exception as e:
            # 新增错误返回,测试时可直接看到报错信息
            return f"执行报错:{str(e)}"
    
  • 确认权限配置生效
    你提到已经配置了S3和Lambda全访问权限,需要确认权限是附加在Lambda的执行角色上,而非其他IAM身份;同时确认S3存储桶没有配置优先级更高的显式拒绝策略,覆盖了允许访问的权限配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:06:04