AWS Lambda导入mysql2报错:如何确保依赖包可用于部署?
解决AWS Lambda在线编写时无法找到mysql2包的问题
Lambda在线编辑器的运行环境默认不包含mysql2这类第三方npm包,本地安装的包不会自动同步到Lambda环境,你可以通过以下两种方式解决:
方法一:使用Lambda层添加依赖
- 本地新建空文件夹(例如
mysql2-layer),进入文件夹后执行:npm init -y npm install mysql2 --production - 将生成的
node_modules文件夹直接打包为ZIP文件(注意ZIP根目录就是node_modules,不要嵌套外层文件夹) - 登录AWS控制台,进入Lambda服务的「层」页面,点击「创建层」:
- 上传刚才的ZIP包
- 选择与你的Lambda函数匹配的Node.js运行时版本
- 返回你的Lambda函数,在「层」选项卡中点击「添加层」,选择刚创建的层
- 重新部署并测试函数
方法二:本地打包代码与依赖后上传
- 本地新建项目文件夹,初始化npm并安装依赖:
npm init -y npm install mysql2 --production - 将你的业务代码文件(如
index.mjs)和node_modules文件夹一起打包为ZIP文件 - 回到Lambda控制台的「代码」选项卡,选择「上传从」->「.zip文件」,上传该ZIP包
- 部署后测试函数
内容的提问来源于stack exchange,提问作者Peter Horvath
相关产品推荐
相关产品推荐

