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

CloudFormation从S3拉取代码创建Lambda出现嵌套结构导致依赖导入失败

问题根因

你当前S3存储的zip包是将整个python_data_collector目录打包,而非将目录下的入口文件、依赖库直接打包到zip根目录。Lambda运行时的默认工作目录为/var/task,zip包会直接解压到该路径下,因此你的实际文件结构为/var/task/python_data_collector/lambda.py、/var/task/python_data_collector/requests/(依赖库存放路径)。Python默认的模块搜索路径仅包含/var/task及运行时内置路径,无法检索到子目录下的依赖库,因此触发导入报错。

解决方案
  • 方案1:调整zip打包规则(最推荐)
    打包时进入python_data_collector目录,选中目录内所有文件(包括入口文件lambda.py、依赖库文件夹等)进行打包,不要直接打包上层的python_data_collector目录。
    命令行打包参考命令:
cd python_data_collector
zip -r ../python_data_collector.zip ./*

调整后将新的zip包上传到S3,Lambda处理程序配置为lambda.lambda_handler即可正常运行。

  • 方案2:修改Python模块搜索路径(无需调整打包逻辑)
    如果不想改动现有打包规则,可以在lambda.py文件最开头添加如下代码,将当前文件所在目录加入Python模块搜索路径:
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

修改后重新打包上传即可,处理程序保持python_data_collector.lambda.lambda_handler配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:54:04