我正在尝试在利用 Node.js 14.x 运行时的 lambda 函数中使用 gifsicle。执行该函数会抛出以下错误:
ERROR /opt/gifsicle: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /opt/gifsicle)
在做了一些尽职调查之后,我相信我需要向我的 lambda 添加一个层,其中包含错误中指出的目录和所需的依赖项 - 但我完全不知道如何去做。
有什么建议吗?
可在此处获取说明。有关如何创建图层内容的信息相当匮乏。您需要执行以下操作:
此 zip 文件应该准备好作为 Lambda 层上传。
在 Node.js 18 运行时的 AWS Lambda 函数中使用
better-sqlite3
时,我遇到了类似的问题。将 Lambda 运行时升级到 Node.js 22 解决了该问题,可能是由于 Node.js 22 中更新了底层操作系统。我还将 Lambda 层更新到版本 22,但之前版本 18 层也能正常工作。
根据 AWS 文档,Node.js 22 运行时基于 Amazon Linux 2023,我认为它包含更新的系统库,可以提高与
better-sqlite3
等本机模块的兼容性。
升级到 Node.js 22 可以为原生模块提供更兼容的环境,有可能解决与系统库版本相关的问题。
https://docs.aws.amazon.com/lambda/latest/dg/nodejs-image.html