AWS Lambda测试报错:无法导入lambda_function模块
AWS Lambda 导入模块报错解决方案(No module named 'lambda_function')
测试时触发的报错:
{ "errorMessage": "Unable to import module 'lambda_function': No module named 'lambda_function'", "errorType": "Runtime.ImportModuleError", "stackTrace": [] }
以下是针对性的排查和解决步骤:
验证压缩包根目录结构
确保lambda_function.py和自定义模块connect_mongoDB.py直接位于压缩包的根层级,而非嵌套在子文件夹内。可以将上传的压缩包本地解压检查,根目录下必须能直接看到lambda_function.py文件。打包时需选中目标文件右键压缩,而非打包包含文件的整个文件夹。核对Handler配置
Lambda控制台的Handler参数必须设置为lambda_function.lambda_handler,格式为[文件名(无.py后缀)].[函数名]。再次确认拼写、大小写完全匹配,避免因笔误导致的识别失败。正确打包依赖模块
- 若
connect_mongoDB是自定义模块:确保它与lambda_function.py处于同一目录层级,且被一同加入压缩包。 - 若
connect_mongoDB依赖第三方库(如pymongo):需在Linux兼容环境(本地Linux、WSL或Lambda层构建环境)中,将依赖安装至项目目录后再打包。示例命令:
安装完成后,将pip install pymongo -t .lambda_function.py、connect_mongoDB.py及生成的依赖文件夹一并压缩上传。
- 若
检查文件名大小写
Lambda运行于Linux环境,文件名大小写敏感。确认实际文件名为lambda_function.py(全小写),且代码中的导入语句、Handler配置的大小写与文件名完全一致。重新生成并上传压缩包
若打包过程中存在文件遗漏或损坏,重新手动选中所有必要文件(业务代码、自定义模块、第三方依赖),以zip格式重新压缩后上传至Lambda,替换原有部署包。
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

