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

如何从AWS Lambda Layer正确导入Node.js模块?

正确的导入方式说明

AWS Lambda Layer上传后,会把压缩包中的内容解压到/opt目录下。你是把nodejs文件夹压缩上传的,所以你的models.js实际存放路径是/opt/nodejs/models.js,这就是你找不到模块的原因。

有两种解决方式:

方式一:直接使用绝对路径导入

修改require的路径为Layer中文件的绝对路径:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const {Player} = require('/opt/nodejs/models.js');

方式二:配置环境变量简化导入

在Lambda函数的配置页面,添加环境变量NODE_PATH=/opt/nodejs,之后就可以直接通过模块名导入:

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
// 两种写法都可以
const {Player} = require('models.js');
// 或者省略.js后缀
const {Player} = require('models');

额外注意点

确保你压缩Layer时的结构正确:压缩包打开后应该直接是nodejs文件夹,里面包含models.js等文件,而不是把nodejs文件夹里的文件直接压缩(这样会导致文件直接放在/opt下,路径又不一样了)。

内容的提问来源于stack exchange,提问作者Chong Lip Phang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:31:15