You need to enable JavaScript to run this app. Lambda S3触发器报No such file or directory错误,需修改哪部分代码?
优惠活动
大模型
产品
解决方案
定价
更多

Lambda S3触发器报No such file or directory错误,需修改哪部分代码?

Lambda报错修复方案

核心报错原因

你遇到的No such file or directory报错是因为代码仅拼接了本地临时存储路径,没有实际将S3上的图片下载到Lambda本地的/tmp目录,直接读取不存在的路径就会触发该错误。除此之外代码还有2处逻辑/依赖问题需要同步修正:

需修改的内容

    1. 补充S3文件下载逻辑:获取到bucket和key后,调用download_file接口将S3文件写入本地/tmp路径
    1. 修正代码缩进:文件读取、模型推理的逻辑必须放到for循环内部,否则仅能处理最后一条事件记录,甚至会出现变量未定义问题
    1. 补全依赖导入:顶部新增import numpy as np,否则调用np.argmax会报模块不存在错误

修正后完整代码

import urllib.parse
import boto3
import uuid
import os
import io
import json
import csv
import numpy as np

# 优先读取环境变量的终端节点名,不存在则用默认值
ENDPOINT_NAME = os.environ.get('ENDPOINT_NAME', 'T4')
runtime= boto3.client('runtime.sagemaker')
s3_client = boto3.client('s3')

def handler(event, context):
    try:
        for record in event['Records']:
            bucket = record['s3']['bucket']['name']
            key = record['s3']['object']['key']
            download_path = '/tmp/{}'.format(key)
            # 新增S3文件下载逻辑
            s3_client.download_file(bucket, key, download_path)
            
            with open(download_path, 'rb') as f:
                payload = f.read()
                payload = bytearray(payload)
            
            response = runtime.invoke_endpoint(
                EndpointName=ENDPOINT_NAME,
                ContentType='application/x-image',
                Body=payload
            )
                                   
            result = json.loads(response['Body'].read().decode())
            print(result)
            index = np.argmax(result)
            image_categories = ['glass', 'plastic bag', 'food', 'metal', 'styrofoam', 'paper','plastic', 'clothing']
            print("Result: label - " + image_categories[index] + ", probability - " + str(result[index]))
            return image_categories[index]
    except Exception as e:
        print(e)

内容的提问来源于stack exchange,提问作者최희재

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 18:36:03