导入 mysql2 时出现 AWS lambda 错误消息

问题描述 投票:0回答:1

我正在创建一个用于访问 RDS 数据库的 AWS Lambda 函数。我在 aws 控制台中内联编写了代码。我没有压缩和上传任何东西。我点击部署并测试。我的代码在第一行失败:

import mysql from 'mysql2/promise';

我收到的错误消息是 “errorMessage”:“找不到从/var/task/index.mjs导入的包‘mysql2’”,

本地,我安装了mysql2。

如何确保 mysql2 可用于部署 lambda 函数?

amazon-web-services aws-lambda import mysql2
1个回答
0
投票

如何确保 mysql2 可用于部署 lambda 函数?

您需要将

node_modules
放入包含 lambda 代码的 zip 文件中,或者放入 layer 中。如果您有很多 lambda 共享相同的依赖项,则后者很有用。

要将其放入 zip 文件中,只需将

node_modules
文件夹与处理程序代码一起打包即可。
node_modules
必须位于 zip 文件中虚拟目录的根目录。

要将其放入图层中,请将其放在

nodejs/node_modules
下,调整图层的 zip 文件大小。在您的 Lambda 容器内,它将安装在
/opt/nodejs/node_modules
下。 Lambda 运行时已设置为查找此路径下的依赖项。

如果您的任何模块使用本机绑定,您还应该注意二进制兼容性(确保本机绑定针对正确的架构进行编译,并与 Lambda 运行时提供的库链接)。但是,mysql2 不使用本机绑定。

© www.soinside.com 2019 - 2024. All rights reserved.