맨날 하는데 맨날 까먹고 찾아보길래 직접 정리해보려고 한다.
람다에서 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파일을 업로드해서 레이어를 생성하면 된다.
마지막으로 해당 레이어를 사용할 람다에 연결해준다.
출처 레이어 디렉토리구조
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
'🌴 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 |