You need to enable JavaScript to run this app. Lambda函数已安装mysql依赖打包上传后仍报Cannot find module 'mysql'错误
优惠活动
大模型
产品
解决方案
定价
更多

Lambda函数已安装mysql依赖打包上传后仍报Cannot find module 'mysql'错误

Lambda Node.js 函数部署报 "Cannot find module 'mysql'" 解决方案

测试运行返回的报错详情:

{
"errorType": "Error",
"errorMessage": "Cannot find module 'mysql'\nRequire stack:\n- /var/task/index.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js",
"trace": [
"Error: Cannot find module 'mysql'",
"Require stack:",
"- /var/task/index.js",
"- /var/runtime/UserFunction.js",
"- /var/runtime/index.js",
"    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)",
"    at Function.Module._load (internal/modules/cjs/loader.js:725:27)",
"    at Module.require (internal/modules/cjs/loader.js:952:19)",
"    at require (internal/modules/cjs/helpers.js:88:18)",
"    at Runtime.exports.handler (/var/task/index.js:4:17)",
"    at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]
}

核心问题成因

  • 压缩包层级嵌套错误:直接把外层项目根文件夹打包成zip时,Lambda解压后会在/var/task路径下生成嵌套的项目子目录,无法直接定位到入口文件和依赖目录,触发模块找不到的报错
  • 依赖安装路径错误:执行npm install mysql --save时未进入项目根目录,导致包含mysql的node_modules被安装到其他上级路径,最终打出来的zip包缺失依赖文件

标准修复操作步骤

  • 在独立项目文件夹内完成npm init初始化后,将业务代码写入与package.json同级路径下的index.js文件
  • 确认当前工作路径为项目根目录,执行干净依赖安装:
    npm install mysql --save --production
    安装完成后校验当前路径下已生成完整的node_modules文件夹,且文件夹内可找到mysql对应的目录
  • 执行压缩操作时,进入项目根目录选中所有核心文件(index.js、package.json、node_modules文件夹)直接打包,不要选中外层项目文件夹整体压缩
  • 将生成的zip包上传至Lambda函数配置端,在控制台触发测试运行即可正常加载依赖

校验注意事项

上传完成后可在Lambda控制台的代码浏览区域确认文件结构:解压后的文件第一级路径必须直接包含index.js和node_modules,不能出现文件夹嵌套层级

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 02:06:04