AWS/질의응답&이슈처리

[AWS] Lambda의 Node.js의 버전 업그레이드 문제 발생

고융고 2024. 1. 17. 16:32
반응형

[AWS] Lambda의 Node.js의 버전 업그레이드 문제 발생

 

문의 사항

최근에 AWS로 부터 Lambda의 Node.js의 버젼을 18.x 이상으로 업그레이드를 하라는 메일을 받고 16.x에서 18.x로 업그레이드를 했습니다. 그런데 그 이후부터 아래와 같은 에러가 발생하여 정상적인 기능이 작동되지 않고 있습니다.

{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'aws-sdk'\nRequire stack:\n- /var/task/index.js\n- /var/runtime/index.mjs",
"stack": [
"Runtime.ImportModuleError: Error: Cannot find module 'aws-sdk'",
"Require stack:",
"- /var/task/index.js",
"- /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"
]
}

답변

안녕하세요. 
   
■ 문의내용
Lambda 의 Node.js 16.x 버전을 18.x 로 업그레이드 하는 과정에서 에러가 발생하는 부분에 대한 문의로 확인하였습니다.
 
■ 답변내용
우선 전달주신 에러 타입을 볼 때 Moduel Import 과정에서 에러가 발생했으며 에러가 발생한 모듈은 aws-sdk 로 확인됩니다.

해당 이슈의 원인은 Node.js 16까지 Lambda의 Node.js 런타임에는 JavaScript용 AWS SDK 버전 2가 포함되었습니다.[1]

이후 Lambda는 런타임에 포함된 JavaScript용 AWS SDK 버전을 v2에서 v3으로 업그레이드했습니다.

기존 Lambda 함수가 포함된 SDK v2를 사용하는 경우 Node.js 18 런타임으로 업그레이드할 때 SDK v3을 사용하도록 함수 코드를 업데이트해야 합니다.

코드 업데이트 방법은 참고[2]를 확인해주시기 바랍니다.
 
■ 참고
[1] https://aws.amazon.com/ko/blogs/compute/node-js-18-x-runtime-now-available-in-aws-lambda/
 
[2] https://aws.amazon.com/ko/blogs/developer/why-and-how-you-should-use-aws-sdk-for-javascript-v3-on-node-js-18/
 
 
감사합니다.

반응형