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

AWS Lambda Python3.9无需层导入requests突然失效问题咨询

问题分析与排查方案

你遇到的核心矛盾是之前无需手动部署requests依赖就能运行,现在却提示找不到模块,结合你的场景(多次用CloudFormation重建堆栈、代码未修改),可能的原因和排查方向如下:

可能的原因

  • 之前的部署包无意中包含了requests依赖
    大概率是你之前打包Lambda代码时,本地环境的requests模块被一起打包进了部署zip里(比如执行过pip install requests -t .后再打包),只是你没留意。后来某次重建堆栈时,打包流程变了(比如只单独打包了index.py),导致部署包里没有了requests,自然就触发了模块找不到的错误。

  • CloudFormation模板的隐性变更
    可能之前的CFN模板里配置了包含requests的Lambda层,并且关联到了你的函数。后来模板被修改(比如自己误删、团队其他人调整),层的资源定义或者函数的层关联被移除,导致现在函数没有依赖支持。

  • 代码存储源的变化
    如果你的CFN模板是从S3拉取部署包,那可能之前的S3 zip包包含requests,后来重新上传的zip包没有包含依赖,CFN部署时用了新的包,就会出现这个问题。

  • 极小概率:Lambda运行时的临时异常
    AWS Lambda的Python3.9运行时本身确实不预装requests,但不排除某次AWS的临时更新中意外包含了该模块,后续又修正了这个问题。不过这个可能性极低,优先排查自己的部署流程。

排查步骤

  1. 检查当前Lambda的部署包
    登录Lambda控制台,进入你的函数,在"代码"标签页下载部署包,解压后查看是否有requests文件夹或相关模块文件。如果没有,说明当前包确实缺少依赖。

  2. 对比CFN模板的历史版本
    找到之前能正常运行的CFN模板版本,和当前模板对比:

    • 查看是否有Lambda层的定义,以及函数是否关联了该层;
    • 检查代码源的配置(比如S3路径、本地打包方式)是否有变化。
  3. 确认本地打包流程
    如果是本地打包后上传,回忆之前的操作:是否执行过pip install requests -t ./将依赖安装到代码目录后再打包?现在的打包步骤是不是漏掉了这一步?

  4. 查看Lambda函数的层配置
    在Lambda控制台的"配置"->"层"标签页,确认是否挂载了包含requests的层。如果之前有,现在没有,那就是层被移除了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:31:06