Lambda에서 함수를 배포하다 보면 python 기본 내장 모듈이 아닌 외부 모듈 사용이 필요한 상황이 있다. 그러나 third party 모듈 설치 없이 실행하면 오류가 발생한다.

AWS_Lambda_Layer_001

AWS Lambda는 Layer(계층)을 활용하여 관리하게끔 기능을 제공한다.

설치할 폴더 생성하기

원하는 경로에 python-python 폴더를 생성한다. 이름이 달라지면 AWS에서 인식을 못할 수 있기 때문에 곤란하다. 경로명을 맞춰서 생성한다.

외부 파이썬 모듈 설치

필자는 firebase_admin 모듈 import를 목적으로 하기에 해당 모듈을 생성했던 폴더 하단에 설치하였따. 콘솔창을 열어 pip install [모듈 이름] -t [경로] 를 입력한 뒤 실행한다.

AWS_Lambda_Layer_002

실행 결과 미리 생성한 폴더 하단에 모듈이 설치되었음을 확인할 수 있다.

AWS_Lambda_Layer_003

이제 가장 상위의 python 폴더를 zip 파일로 압축한다.

AWS Lambda Layer 생성

AWS Lambda 페이지의 Layer 탭에 가서 원하는 모듈을 포함한 Layer를 생성할 차례다. 적당히 이름, 설명을 작성 후 원하는 호환 런타임을 설정한다. python 모듈을 관리할 Layer이므로 python과 호환되게 선택한다. 그리고 미리 압축했던 압축 파일을 업로드한 뒤 생성하면 작업이 완료된다.

AWS_Lambda_Layer_004

Aws Lambda에서 외부 모듈 사용

내장 모듈이 아닌 third party 모듈 사용을 위해 별도의 계층을 생성하였다. AWS Lambda의 Function 콘솔에서 생성한 layer를 선택해 적용한다.

AWS_Lambda_Layer_005

단순히 테스트를 위해 import한 결과 성공했음을 확인할 수 있다.

AWS_Lambda_Layer_006

+ Recent posts