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

如何在amazonlinux:2023 Docker镜像中安装NodeJS适配AWS Lambda

在Amazon Linux 2023中安装Node.js并部署NodeJS+Express+Sqlite3到AWS Lambda的解决方案

解决Amazon Linux 2023中Node.js安装报错的方法

方法1:手动下载二进制包安装

直接从Node.js官方获取预编译的二进制压缩包,绕过系统包管理器的EL版本检测:

# 以x64架构的Node.js 20.10.0为例,如需其他版本/架构,替换对应URL
curl -O https://nodejs.org/dist/v20.10.0/node-v20.10.0-linux-x64.tar.xz
tar -xJf node-v20.10.0-linux-x64.tar.xz
mv node-v20.10.0-linux-x64 /usr/local/node
# 将Node.js添加到系统环境变量
echo 'export PATH=$PATH:/usr/local/node/bin' >> ~/.bashrc
source ~/.bashrc
# 验证安装
node -v
npm -v

安装完成后,直接执行npm install sqlite3即可完成依赖安装。

方法2:使用nvm安装任意Node.js版本

nvm(Node Version Manager)不受系统包管理器限制,可灵活安装、切换Node.js版本:

# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 重载shell配置,使nvm生效
source ~/.bashrc
# 安装指定版本的Node.js(示例为v20)
nvm install 20
# 设置为默认版本
nvm alias default 20

之后正常执行npm install sqlite3即可。

更高效的Lambda部署方案(绕开自定义镜像的麻烦)

方案1:直接使用Lambda官方Node.js运行时

Lambda官方Node.js 18.x/20.x运行时基于Amazon Linux 2,无需自定义镜像,只需安装兼容该环境的sqlite3版本:

# 针对x64架构的Lambda运行时安装sqlite3
npm install --platform=linux --arch=x64 sqlite3
# 如果是arm64架构,替换为:
# npm install --platform=linux --arch=arm64 sqlite3

将整个项目打包为zip文件,上传至Lambda即可运行。

方案2:用Lambda层封装sqlite3依赖

把sqlite3编译为Lambda层,可在多个函数中复用:

  1. 在Amazon Linux 2环境中(与Lambda官方运行时一致),安装对应版本的Node.js并执行npm install sqlite3
  2. 将node_modules/sqlite3目录打包为zip文件
  3. 上传该zip作为Lambda层,在目标Lambda函数中关联此层,代码中即可正常引用sqlite3

注意事项

  • 若使用容器镜像部署,需确保镜像符合Lambda容器规范,正确设置CMD或ENTRYPOINT指向你的Express启动脚本
  • Lambda的本地存储是临时的,若需持久化sqlite数据,需挂载EFS或改用RDS等持久化存储服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:57:15