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

在AWS Lambda部署aws-wsgi与Flask依赖层遇导入错误求助

Lambda Layer导入aws-wsgi和flask失败问题排查

问题描述

在AWS Cloud9中通过pip安装aws-wsgi和flask,打包为ZIP文件后上传至Lambda Layer并绑定到Lambda函数,出现以下导入错误:

{
"errorMessage": "Unable to import module 'lambda_function': No module named 'awsgi'",
"errorType": "Runtime.ImportModuleError",
"requestId": "81e04845-856a-4b98-85a4-7de4644e6244",
"stackTrace": []
}

flask也出现相同类型的导入错误,但requests、psycopg2-binary等其他依赖用相同部署方式可正常使用。

补充:Windows环境下原Layer创建步骤

  • 登录AWS Cloud9
  • 执行curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py安装get-pip.py
  • 执行python3 get-pip.py
  • 执行python3 -m pip install flask aws-wsgi -t .
  • 退出名为dependency的目录
  • 执行zip -r dependencies.zip dependency/
  • 下载该ZIP文件
  • 通过AWS Lambda控制台将ZIP文件上传至Lambda Layers

问题原因&解决方案

Lambda Layer对Python依赖的目录结构有强制要求:必须将依赖放在python/lib/pythonX.X/site-packages/目录下(X.X需匹配Lambda函数使用的Python版本,如3.9、3.10),否则运行时无法识别模块。之前的打包方式不符合该结构,导致导入失败。

修正后的Layer创建步骤

  1. 在Cloud9中创建符合要求的目录结构:

    mkdir -p dependency/python/lib/python3.9/site-packages
    

    注意:将python3.9替换为你的Lambda函数实际使用的Python版本。

  2. 将依赖安装到指定目录:

    python3 -m pip install flask aws-wsgi -t dependency/python/lib/python3.9/site-packages/
    
  3. 正确打包目录:

    cd dependency
    zip -r ../dependencies.zip .
    

    此时打包的ZIP文件解压后,内部结构以python/lib/pythonX.X/site-packages/开头,Lambda运行时可正确识别依赖。

额外验证点

  • 下载打包后的ZIP文件并解压,检查内部是否存在python目录,且层级符合上述要求。
  • 确认Lambda函数的Python运行时版本与Layer中指定的Python版本完全一致(比如Lambda用3.10,Layer内就要对应使用python3.10目录)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:33:26