Kien 씨가 Node.js를 위한
Lambda 배포 패키지를
구축하는 방법을 보여줍니다.

kien_lambda_node

Node.js에서 AWS Lambda 함수를 생성했는데 호출 중 오류가 발생했습니다. 오류가 발생하지 않게 배포 패키지를 빌드하려면 어떻게 해야 합니까?

Node.js에서 Lambda 함수와 관련하여 흔히 발생하는 오류는 "cannot find module(모듈을 찾을 수 없음)" 오류입니다. 일반적으로 이 오류는 배포 패키지에 모듈과 라이브러리를 로드하는 Lambda 서비스에 사용할 올바른 폴더 구조가 없거나 파일 권한이 올바르지 않을 때 발생합니다. (Lambda에는 전역 읽기 권한이 필요합니다.)

다음 지침에 따라 .zip 파일 루트에 있고 모든 파일에 대한 읽기 및 실행 권한이 있는 함수 코드가 포함된 배포 패키지를 빌드하십시오.

Linux 및 macOS

함수 프로젝트 폴더에 종속성 설치

참고: 대부분의 Node.js 모듈은 플랫폼 독립적이지만 일부 모듈은 특정 운영 체제 환경용으로 컴파일됩니다. Lambda는 Linux 환경에서 실행됩니다. npm과 함께 모듈을 설치하는 경우에는 올바른 플랫폼 종속성이 포함될 수 있도록 Linux 환경에서 .zip 파일을 제작하는 것이 좋습니다.

1.    명령줄 인터페이스(CLI)에서 프로젝트 폴더의 디렉터리를 변경합니다. 예를 들면 다음과 같습니다.

cd /project-folder-name

참고: project-folder-name을 프로젝트 폴더의 실제 이름으로 바꾸십시오.

2.    npm install package-name 명령을 사용하여 함수 프로젝트 폴더에 로컬로 종속성을 설치합니다. 이때 package-name을 실제 패키지 이름으로 바꿉니다. 예를 들어 프로젝트 폴더의 루트에 AWS SDK for JavaScript 모듈을 설치하려면 다음 명령을 실행합니다.

npm install aws-sdk

팁: AWS Lambda는 기본 컨테이너 구성의 일부로 AWS SDK for JavaScript 라이브러리를 포함합니다. 하지만 다른 버전의 라이브러리를 사용해야 하는 경우 로컬 사본을 포함할 수도 있습니다. 현재 Lambda 환경과 지원되는 라이브러리에 대한 자세한 내용은 Lambda 실행 환경 및 사용 가능 라이브러리를 참조하십시오.

Lambda 함수에 필요한 각 모듈에 대해 이 명령을 실행합니다.

참고: 비압축 파일의 함수 크기에는 250MB의 크기 제한이 있습니다. 함수가 작동하는 데 필요한 라이브러리만 포함하십시오.

배포 패키지 빌드

CLI에서 다음 명령을 실행합니다.

zip -r ../function-name.zip .

참고: function-name을 배포 패키지에 지정할 파일 이름으로 바꿉니다.

그러면 프로젝트 폴더에 있는 모든 파일이 상위 폴더에 있는 .zip 파일에 포함됩니다.

배포 패키지 확인

1.    CLI에서 다음 명령을 실행합니다.

zipinfo ../function-name.zip

참고: function-name을 배포 패키지의 실제 파일 이름으로 바꿉니다.

또한 .zip 파일에 대해 unzip -l를 실행하여 내용을 나열할 수도 있지만 이 경우 정보가 위의 명령만큼 자세하지 않습니다.

2.    출력에서 함수 핸들러 소스 파일은 zip 파일의 루트에 위치하고 있는지 확인합니다.

3.    출력에서 파일에 전역 읽기 권한이 있는지 확인합니다. 필요한 경우 권한을 수정하는 방법을 비롯한 자세한 내용은 Lambda 구축 패키지의 권한 정책을 참조하십시오.

Windows

배포 패키지 빌드

1.    파일 탐색기에서 프로젝트 폴더를 엽니다.

2.    프로젝트 파일을 모두 선택한 후 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 엽니다.

3.    [Send to]를 선택한 후 [Compressed (zipped) folder]를 선택합니다.

4.    .zip 파일의 이름을 입력합니다.

배포 패키지 업로드 및 확인

1.    Lambda 콘솔에서 함수를 선택합니다.

2.    [Function code]의 [Code entry type]에서 [Upload a .zip file]을 선택합니다.

3.    [Function package]에서 [Upload]를 선택합니다.

4.    생성한 .zip 파일을 선택한 후 [Open]을 선택합니다.

5.    콘솔의 상단에서 [Save]를 선택합니다.

팁: AWS 명령줄 인터페이스(AWS CLI)에서 update-function-code를 실행하여 .zip 파일을 업로드할 수도 있습니다.

6.    업로드가 끝나면 [Test]를 선택합니다.

팁: 또한 AWS CLI에서 7-Zip을 사용하여 배포 패키지의 파일 권한을 확인할 수도 있습니다. 7-Zip 웹 사이트에서 다운로드하십시오. 자세한 내용은 Lambda 배포 패키지의 권한 정책을 참조하십시오.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오

게시 날짜: 2018년 6월 29일

업데이트 날짜: 2019년 2월 15일