lamdba 함수를 업로드하고 실행시 Error: Cannot find module 'index'\nRequire stack:\n- /var/runtime/index.mjs 에러의 발생 원인과 해결 방법
lamdba를 구성하고 함수 코드를 업로드후 테스트 실행시 에러가 발생
상황
{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'index'\nRequire stack:\n- /var/runtime/index.mjs",
"trace": [
"Runtime.ImportModuleError: Error: Cannot find module 'index'",
"Require stack:",
"- /var/runtime/index.mjs",
" at _loadUserApp (file:///var/runtime/index.mjs:1087:17)",
" at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1119:21)",
" at async start (file:///var/runtime/index.mjs:1282:23)",
" at async file:///var/runtime/index.mjs:1288:1"
]
}
handler 파일과 함수 이름 확인
파일 경로 및 모듈 확인
lambda-funtion-name/
├── index.js
└── node_modules/
├── mysql2/
├── dayjs/
└── ...
package.json 확인 및 종속성 설치
{
"name": "function name",
"version": "1.0.0",
"main": "index.js",
"type": "module",
"dependencies": {
"aws-sdk": "^2.1644.0",
"dayjs": "^1.11.11",
"fs": "^0.0.1-security",
"mysql2": "^3.10.1",
"mysql2-promise": "^0.1.4"
}
}
export async function handler(event) {
// db값을 확인하고 정보를 가공
return {
statusCode: 200,
body: 'ok'
};
}
lambda-funtion-name/
└── zipfile-name
├── index.js
└── node_modules/
├── mysql2/
├── dayjs/
└── ...