새소식

250x250
AWS

Python Module을 Lambda Layer 생성 방법

  • -
728x90
반응형

Lambda에서 파이썬 파일을 작성 할 때,

모듈이 못 찾아서 실행이 안된다면 해당 모듈을 어떻게 import할 수 있을까.

 

AWS에서는 이러한 고민을 생각했는지 , Lambda Layer를 통해 모듈을 추가 할 수 있다.

https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/configuration-layers.html

 

Lambda 계층 만들기 및 공유 - AWS Lambda

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com


Lamda Layer로 올라갈 모듈 zip 생성하기

람다 레이어로 생성 할 파이썬 모듈을 설치 해 보자.

모듈을 설치 할 때에는 "python"이라는 폴더내에 설치가 되어져야 한다,

혹은 특정 폴더에 설치 해도 되나 zip 할 떄의 모듈의 상위 폴더명이 python과 같은 계층 구조여야 한다.

pillow.zip
│ python/PIL
└ python/Pillow-5.3.0.dist-info

 

 

필자는 python 폴더를 만든 뒤, 해당 폴더내에 원하는 모듈을 설치하는 방식으로 진행하고자 한다.

mkdir python
cd python/

파이썬 폴더로 만들고, 해당 폴더로 진입을 했다.

 

pip install paramiko -t .

위의 명령어를 입력하여 모듈을 설치한다.

 

해당 명령어의 설명은 아래와 같다.

pip install {{패키지명}} -t {{설치경로}}

원하는 패키지명을 기입한뒤 -t 옵션을 이용하여 설치될 경로를 지정합니다. 

위에서 "."를 입력한 이유로는 이동한 현재 폴더인 python에 설치하기 위함입니다.

 

zip -r {{zip파일명}}.zip {{zip파일만들 경로}}

>> cd ..
>> zip -r layer.zip python/

모듈이 다 설치가 되었다면 zip파일로 만들고, 해당 zip파일을 람다의 Layer로 올리면됩니다.

만들어진 zip의 계층 구조는 위와 같습니다.

 


Zip 파일 Lamda Layer로 올리기

람다 서비스로 들어간뒤 우측에 추가리소스 > 계층으로 들어가 계층 생성을 한다.

 

Layer명과, 호환할 수 있는 런타임을 설정하고 

위에서 만든 모듈.zip파일을 업로드 하여 생성을 하면 앞으로 람다에서 해당 모듈을 사용할 수 있다.

 


 

일단... 정작 중요한건... 내가 레이어로 추가한 모듈은 뭘 더 해야하는것같다.... 

해당부분도 확인후 자료로 남겨둬야겠다..

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.