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

AWS Lambda中lambda_function模块语法错误排查求助

问题排查与解决方案

语法错误根源

你的代码里的try语句缺少对应的except或finally块,这是Python的语法强制要求——try必须搭配至少一个异常处理块(except)或者清理块(finally)。本地运行正常大概率是因为测试时没触发这段代码路径,或者你本地的代码原本有except但粘贴时遗漏了,但Lambda会在启动前严格检查代码语法,直接抛出错误。

修复代码(同时优化你的需求实现)

另外,你的代码可以针对需求做优化,比如直接过滤.txt文件,避免处理无关文件,同时不要用os.chdir切换目录(容易影响后续代码的工作路径):

import os
import random

def chooseRndBook():
    # 直接拼接sources目录的绝对路径,Lambda工作目录为/var/task,确保sources文件夹在此路径下
    sources_path = os.path.join(os.getcwd(), "sources")
    # 只筛选目录下的.txt文件(忽略大小写)
    txt_books = [file for file in os.listdir(sources_path) if file.lower().endswith('.txt')]
    
    # 可选:处理.DS_Store(其实筛选txt后已无需此步骤,仅作异常处理演示)
    try:
        txt_books.remove('.DS_Store')
    except ValueError:
        # 文件不存在时忽略异常
        pass
    
    # 处理没有找到txt文件的情况
    if not txt_books:
        return None  # 或根据需求抛出自定义异常
    
    return random.choice(txt_books)

Lambda部署注意事项

  • 打包代码时,要确保sources文件夹和lambda_function.py处于同一层级,一起打包上传
  • 确认Lambda的Python运行时版本和你本地测试的版本一致,避免版本兼容问题

内容的提问来源于stack exchange,提问作者t-madhaw

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:35:23