AWS Lambda调用GetObject报NoSuchKey错误排查求助
问题排查:Lambda调用S3 GetObject时出现NoSuchKey错误
文件名格式不匹配
你的代码构造的目标文件名是{subject}_Teacher_{class_section}_Message.txt,但实际examplebucket90桶中存在的文件是English_1A_Message.txt,缺少代码中拼接的_Teacher_{class_section}部分。Lambda按代码逻辑查找不存在的键,直接导致了NoSuchKey错误。触发事件解析与拼接逻辑问题
上传的触发文件是English_1A_assignment.pdf,需检查代码中从触发事件提取subject和class_section的逻辑是否合理,是否存在过度拼接的情况。比如是否误将English_1A拆分为subject=English、class_section=1A,然后强制拼接_Teacher_生成English_Teacher_1A_Message.txt,但实际桶内文件并无该后缀。添加日志验证目标键
可以在Lambda代码中添加日志输出,打印要获取的S3对象键,比如:target_key = f"{subject}_Teacher_{class_section}_Message.txt" print(f"尝试获取的S3对象键:{target_key}")然后查看CloudWatch日志,确认实际请求的键与桶中存在的键是否完全一致(注意大小写、特殊字符、路径分隔符等细节)。
权限已排除
你已配置AmazonS3FullAccess权限,因此该错误与权限无关,无需在权限层面排查。
内容的提问来源于stack exchange,提问作者raj
相关产品推荐
相关产品推荐

