정상적인 순서로 서버리스를 만들었을때 send했을때 이런 오류가 나온다면
로컬에서 lambda에 배포할때
우리 로컬에는 여러 라이브러리가 깔려있는 상태로 작업하고 lambda로 보낼때 필요한 라이브러리를 다 설치해주는데
이 라이브러리하고 소스코드 전부 다합처서 50mb가 넘으면 안된다는거
람다에는 소스코드만 넣어놓고 람다의 레이어를 만들어서 라이브러리(넘파이,판다스 등)를 미리 설치한뒤 람다실행될때 붙여준다.
numpy pandas 라이브러리를
lambda 레이어로 만드는 방법
aws 클라우드안에 ec2 람다가 있다면
ec2에 접속해 람다와 같은 파이썬 환경을 구축
ssh:ec2 접속(리눅스)
pypi접속 후 넘파이 판다스 설치해서 zip파일로 압축후
ftp: 로컬로 옮겨주고(파일질라)
로컬에서 람다로 옮겨주기
1.putty 실행후 접속
2.파이썬이 없으면 아나콘다를 설치해주기
https://seonggongstory.tistory.com/111
3.람다의 환경이 파이썬 3.9이므로 가상 환경을 만든다
conda create -n 가상환경이름 python=3.9
conda create -n lambda39 python=3.9
여기선 이렇게
4.가상환경으로 이동
conda activate lambda39
5.디렉토리를 하나 만든다. 이름은 python으로
mkdir 이름
mkdir python
6.만든 디렉토리로 이동
cd 이름
7.아마존 리눅스에 설치할 넘파이와 판다스,pytz 파일을 찾고 ec2에다운받기.
https://pypi.org/search/?q=numpy
리눅스,파이썬3.9,x86 에 맞는거
링크 복사한뒤
wget 링크주소
판다스도 같은작업
pytz도 다운로드
파일 3개
8.unzip 명령을 통해 위의 3개 파일을 각각 압축푼다.
unzip 파일명
폴더와 파일이 압축이 풀렸음
판다스 pytz모두 같은 작업
9.필요없는 파일(기존 파일들) 삭제하기
whl파일들
rm -rf 파일명 or 폴더명
#참고로 파일명에 단어가 포함된 파일들을 모두 처리할때는
$ rm -rf *.whl
(.whl로 끝나는 모든거 삭제하라)
삭제된 모습
10.상위 경로로 이동해 python폴더 전체를 압축하기
pwd
(내 위치 경로 보기)
cd..
(상위 폴더로 이동)
zip -r 압축파일명 압축할디렉토리명
#지금은 이렇게
zip -r numpy_pandas_layer_39.zip python
압축 잘되었음
11.파일질라로 레이어 이동시켜주기
https://seonggongstory.tistory.com/118
14.s3업로드를 위해 먼저 s3로가서 버킷을 만든다
버킷명 : 아이디-lambda-layer
아까 파일질라로 받은 파일을 업로드 해줌
14.람다 레이어 생성을 위해 계층 생성
https://ap-northeast-2.console.aws.amazon.com/lambda/home?region=ap-northeast-2#/applications
aws 람다로 이동
호환성 파이썬 s3링크 다 집어넣기
계층 생성 완료
10.6mb까지 줄었고 더 줄일수도 있음
15. vsc에서, requirements.txt.에 적은, numpy와 pandas는 빼야한다
삭제해주기
이때 region이 바뀐다면 그 region에 맞는 버킷부터 시작해야한다
14번 부터 다시 진행해야한다
1.putty 실행후 접속
2.파이썬이 없으면 아나콘다를 설치해주기
3.람다의 환경이 파이썬 3.9이므로 가상 환경을 만든다
4.가상환경으로 이동
5.디렉토리를 하나 만든다. 이름은 python으로
6.만든 디렉토리로 이동
7.아마존 리눅스에 설치할 넘파이와 판다스,pytz 파일을 찾고 ec2에다운받기.
8.unzip 명령을 통해 위의 3개 파일을 각각 압축푼다.
9.필요없는 파일(기존 파일들) 삭제하기
10.상위 경로로 이동해 python폴더 전체를 압축하기
11.파일질라로 레이어 이동시켜주기
14 람다 레이어 생성을 위해서, aws 콘솔에 접속한다
15위의 파일을 s3 업로드 하기위해, 먼저 s3로 가서 버킷을 만든다. (버킷명: 여러분의 아이디-lambda-layers)
16.s3의 위 버킷에, 앞에서 만든 파일을 업로드한다
17.aws 콘솔의 람다 항목으로 이동해서
18.계층(layer) 계층 생성항목선택하여,계층을 생성한다. (s3, URL, X86_64, Python3.9
19.우리앱의 lambda로 이동하여, 계층을 추가한다.
20.vsc에서, requirements.txt.에 적은, numpy와 pandas는 빼야한다. (이미 레이어에서 설치해서 제공하니가)
'Api 개발 > flask' 카테고리의 다른 글
이미지 업로드 api 만들기 (0) | 2023.01.12 |
---|---|
github로 lambda CI/CD하기 (0) | 2023.01.12 |
serverless 서버 서울로 바꾸기 (0) | 2023.01.11 |
API 소스코드 lambda에 배포하기 (0) | 2023.01.10 |
영화추천 api 만들기 즐겨찾기 기능 (0) | 2023.01.10 |