본문 바로가기
🌴 DevOps/Cloud

[AWS] 람다에서 Python 패키지 사용하기 | Layer(계층)란?

by 카프리썬_ 2021. 6. 10.
728x90
728x90

맨날 하는데 맨날 까먹고 찾아보길래 직접 정리해보려고 한다.

람다에서 python을 실행하는데 이런 오류가 났다면? 패키지가 없는것이다! 

Unable to import module 'lambda_function': No module named 'requests'

 

그래서 패키지를 lambda에 넣어줘야하는데 이떄 layer를 추가해주면 된다. 

즉, 람다에서 쓸 패키지들을 따로 모아 zip파일로 올리는 것이다.

 

아, 그리고 추가적으로 람다에선 레이어를 쓰는데 아래와 같은 제한사항이 있다.

무한정으로 라이브러리를 실을 수 있는 것은 아니고,
5개의 layers, 전체 layers 용량 250m 까지라는 제한이 존재 합니다.

 

그래서 프로젝트에서 python 이라는 폴더를 하나 생성하고, 그 안에 아래와 같은 명령어로 패키지들을 모아두면 된다. 

폴더경로\python > pip install [설치할 모듈명] -t .

단, python 런타임일 경우 항상 폴더명은 python이여야한다고 한다.

 

그러고나면 python에 모듈들이 생성이 되는데 이걸 zip로 묶는다. 

여기에서 주의해야할게 zip파일의 가장 상위경로가 python 폴더이고, 그 안에 패키지들이 있어야한다. 

이런 구조에서 python_lib를 zip으로 묶는다. 

 

최종적으로 레이어로 올리기 위해 압축한 파일은 이런 형식인것

그리고 ZIP파일을 업로드해서 레이어를 생성하면 된다. 

 

마지막으로 해당 레이어를 사용할 람다에 연결해준다. 

 

출처 레이어 디렉토리구조 

http://blog.naver.com/PostView.nhn?blogId=chandong83&logNo=221852027113&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView 

 

AWS 람다(AWS Lambda) 계층(Layer)를 이용해 파이썬 패키지(Package, Library) 사용하기

aws 람다를 작성하다 보면 기본 제공 패키지 외에 새로운 패키지를 설치해 사용해야 할 때가 있다. 예전에...

blog.naver.com

 출처 레이어 설명 

https://kbs4674.tistory.com/109

 

AWS Lambda : 계층(Layer)의 이해

Ruby on Jets로 배포된 모든 AWS Lambda 함수에 있어 공통적으로 계층(Layer)이 붙습니다. 그리고 이 계층들을 보면 공통적으로 하나의 파일을 가리키고 있습니다. 바로 Ruby on Jets에서 라이브러리 패키지

kbs4674.tistory.com

출처 https://jsikim1.tistory.com/180

 

AWS Lambda Layers 사용 방법 - AWS Lambda import module(package) (Lambda 모듈(패키지) 추가 및 사용 방법)

AWS Lambda Layers 사용 방법 - AWS Lambda import module(package) (AWS Lambda 모듈(패키지) 추가 및 사용 방법) AWS Lambda 를 사용할 때, 원하는 모듈(패키지) 를 추가하여 사용해야하는 경우가 있습니다. 또,..

jsikim1.tistory.com

728x90
반응형