AWS Lambda 함수를 통해서 페이지를 설계할 때에
해당 Lambda 함수가 사용해야 할 라이브러리가 있습니다.
Lambda 함수 내부에서 특정한 라이브러리를 사용하기 위해서는 “Layer” 즉, 계층을 설정해줘야 하는데요.
이 계층을 로컬에서 생성해서 업로드를 하는 방식을 알아보겠습니다.
기본적으로 AWS 콘솔로 로그인을 합니다.
이후 검색 창에서 lambda 입력을 해서 lambda 대시보드에 접속합니다.
대시보드 우측 상단에서 “함수 생성” 버튼을 찾을 수 있습니다.
저는 위와 같이 기본적으로 두고 함수를 생성합니다.
함수 이름은 직접 작명하면 됩니다.
그냥 Test 로 넣고 생성을 해보겠습니다.
생성을 하면 자동으로 생성한 함수의 설정 화면으로 이동합니다.
함수 개요 섹션에서 “Layers” 라는 부분이 있는 것을 확인 가능합니다.
아래로 스크롤을 내리면 “코드” 라는 섹션이 기본적으로 선택이 되어 있습니다.
여기서 더 스크롤을 내리면…
내리다 보면은 위와 같은 블럭이 있습니다.
이 블럭의 우측 상단을 보면 “Add a layer” 라는 버튼이 있습니다.
이 버튼을 눌러 해당 Lambda 함수가 사용할 라이브러리를 넣어줄 수 있습니다.
버튼을 눌러 이동하면 계층 추가를 위한 페이지가 나타납니다.
이 페이지에서는 기본적으로 AWS 계층이 제공하는 것들 중에서 선택이 가능하지만…
해당 포스팅에서는 “사용자 지정 계층” 을 통해서 넣어줄 겁니다.
import ExcelJS from "exceljs";
예컨대 위와 같은 라이브러리를 필요로 하는 lambda 함수라면…
ExcelJS 라이브러리가 필요합니다.
그럼 이 라이브러리가 미리 내 계층에 저장이 되어 있어야 선택이 가능합니다.
이를 위한 작업을 이어서 해봅시다.
mkdir -p server/layers/excelJS/nodejs
이 작업은 내 컴퓨터에 npm 이 설치가 되었다는 가정으로 진행하겠습니다.
우선은 위와 같은 구조로 특정한 폴더를 만들 겁니다.
“excelJS” 그러니까 우리가 사용할 라이브러리의 이름을 가지고 있는 디렉토리가 하나 있습니다.
이 디렉토리 내부에 “nodejs” 라는 이름의 디렉토리를 하나 더 만든 겁니다.
cd server/layers/excelJS/nodejs
그리고 nodejs 내부로 이동을 하겠습니다.
이 작업을 터미널에서 하면 됩니다.
터미널에서 nodejs 으로 이동했다면, 해당 위치에서 라이브러리를 설치할 겁니다.
지금 필요한 라이브러리는 excelJS라는 가정입니다.
npm init -y
먼저 위 명령어를 눌러주세요.
그러면 package 파일을 해당 폴더 안에 생성이 됩니다.
위처럼 nodjs 디렉토리 내부에 package.json 파일이 생성이 됐다면 성공입니다.
그럼 이어서 라이브러리를 설치하겠습니다.
npm install exceljs
같은 경로에서 위 명령어로 exceljs 라이브러리를 다운 가능합니다.
다운로드가 완료 되었다면 nodejs 상위 경로로 이동하겠습니다.
앞서 “excelJS/nodejs” 와 같이 경로를 설정했지요?
그리고 nodejs 내부에서 npm 명령어를 2개 실행했습니다.
이번에는 excelJS 위치에서 명령어를 실행해야 합니다.
Compress-Archive -Path nodejs -DestinationPath excelJS.zip -Force
여기서 실행할 명령어입니다.
위 명령어는 excelJS.zip 파일을 생성하는 것으로 되어 있습니다.
이 부분은 내가 필요한 라이브러리 이름에 맞춰 적절히 변형을 해주면 됩니다.
VScode 터미널에서 실행을 했다면…
위와 같이 zip 파일을 만드는 중이라는 메시지가 발생할 겁니다.
그리고 성공적으로 생성이 되었다면…
excelJS 위치에 excelJS.zip 파일이 생성되었을 겁니다.
Lambda 대시보드 좌측에서 다음을 선택해주세요.
추가 리소스 부분에서 “계층” 이라는 부분이 있을 겁니다.
이동한 대시보드의 우측 상단을 보면 “계층 생성” 버튼이 있습니다.
이 버튼을 눌러주세요.
계층의 이름으로는 “exceljs” 를 넣겠습니다.
여기에서 zip 파일 업로드 부분이 있습니다.
파일을 선택하면 되는데, 앞서 생성한 zip 파일을 선택하면 됩니다.
아키텍처, 런타임 부분도 같게 설정해주세요.
이후 생성을 해주세요.
이제 앞서 계층 추가 단계에서
“사용자 지정 계층” 드롭다운을 펼치면
우리가 설정한 이름으로 해당 layer가 나타나는 것을 볼 수 있습니다.
여기까지 로컬에서 계층 생성을 위한 작업을 하고
실제로 해당 작업을 통해 만든 zip 파일로 계층을 생성하는 것까지 해봤습니다.
다음에도 또 비루한 주제를 가지고 포스팅을 해보겠습니다.
여기까지 봐주신 분들 정말 감사합니다.^^