Lambda에서 파이썬 파일을 작성 할 때,
모듈이 못 찾아서 실행이 안된다면 해당 모듈을 어떻게 import할 수 있을까.
AWS에서는 이러한 고민을 생각했는지 , Lambda Layer를 통해 모듈을 추가 할 수 있다.
https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/configuration-layers.html
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파일을 업로드 하여 생성을 하면 앞으로 람다에서 해당 모듈을 사용할 수 있다.
일단... 정작 중요한건... 내가 레이어로 추가한 모듈은 뭘 더 해야하는것같다....
해당부분도 확인후 자료로 남겨둬야겠다..
'AWS' 카테고리의 다른 글
Ubuntu 22.04에 CodeDeploy Agent 설치하기 (0) | 2022.08.30 |
---|---|
AWS CodeDeploy 배포시 나는 에러 해결법 (0) | 2022.08.25 |
AWS RDS에서 MySql 이모지 처리 (utf8, utf8mb4) (0) | 2022.08.16 |