Lambda에서 함수를 배포하다 보면 python 기본 내장 모듈이 아닌 외부 모듈 사용이 필요한 상황이 있다. 그러나 third party 모듈 설치 없이 실행하면 오류가 발생한다.
AWS Lambda는 Layer(계층)을 활용하여 관리하게끔 기능을 제공한다.
설치할 폴더 생성하기
원하는 경로에 python-python 폴더를 생성한다. 이름이 달라지면 AWS에서 인식을 못할 수 있기 때문에 곤란하다. 경로명을 맞춰서 생성한다.
외부 파이썬 모듈 설치
필자는 firebase_admin 모듈 import를 목적으로 하기에 해당 모듈을 생성했던 폴더 하단에 설치하였따. 콘솔창을 열어 pip install [모듈 이름] -t [경로] 를 입력한 뒤 실행한다.
실행 결과 미리 생성한 폴더 하단에 모듈이 설치되었음을 확인할 수 있다.
이제 가장 상위의 python 폴더를 zip 파일로 압축한다.
AWS Lambda Layer 생성
AWS Lambda 페이지의 Layer 탭에 가서 원하는 모듈을 포함한 Layer를 생성할 차례다. 적당히 이름, 설명을 작성 후 원하는 호환 런타임을 설정한다. python 모듈을 관리할 Layer이므로 python과 호환되게 선택한다. 그리고 미리 압축했던 압축 파일을 업로드한 뒤 생성하면 작업이 완료된다.
Aws Lambda에서 외부 모듈 사용
내장 모듈이 아닌 third party 모듈 사용을 위해 별도의 계층을 생성하였다. AWS Lambda의 Function 콘솔에서 생성한 layer를 선택해 적용한다.
단순히 테스트를 위해 import한 결과 성공했음을 확인할 수 있다.
'Cloud > AWS' 카테고리의 다른 글
AWS RDS DB 생성 및 외부 연결하기 (0) | 2021.03.11 |
---|---|
Serverless | AWS Lambda에서 Firebase Notification 전송 (18) | 2021.01.11 |
Serverless | AWS API Gateway + Lambda + DynamoDB를 활용한 REST API 구축 #006 (0) | 2020.07.31 |
Serverless | AWS API Gateway + Lambda + DynamoDB를 활용한 REST API 구축 #005 (0) | 2020.07.30 |
Serverless | AWS API Gateway + Lambda + DynamoDB를 활용한 REST API 구축 #004 (0) | 2020.07.27 |