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 폴더이고, 그 안에 패키지들이 있어야한다.
최종적으로 레이어로 올리기 위해 압축한 파일은 이런 형식인것
그리고 ZIP파일을 업로드해서 레이어를 생성하면 된다.
마지막으로 해당 레이어를 사용할 람다에 연결해준다.
출처 레이어 디렉토리구조
출처 레이어 설명
728x90
반응형
'🌴 DevOps > Cloud' 카테고리의 다른 글
[Athena] parquet형식 S3 데이터 가져오기 (0) | 2021.06.25 |
---|---|
⚡[Athena] S3에 저장된 데이터활용하기 | 데이터파티셔닝과 압축 (0) | 2021.06.17 |
[DynamoDB] DynamoDB란? 파티션키와 정렬키 (1) | 2021.06.15 |
[VPC] 서브넷 추가시, IP주소가 부족하다면? | VPC에 보조CIDR 연결 (0) | 2021.05.13 |
[AWS 비용] AWS FreeTier 과금은? | 과금대상 특이사항 (0) | 2021.05.12 |
[AWS비용] AWS FreeTier 어디까지 무료인가?| 프리티어 사용량 (2) | 2021.03.21 |