API 서버개발

Serverless 판다스 사용시 오류 판다스 레이어 만드는 방법

K2ODING 2022. 1. 13. 11:57
728x90

< 판다스 레이어 만드는 방법 > 


1.putty 이용해서 ec2에 접속한다.


2. 파이썬이 없으면 아나콘다를 설치한다.

(base) 라고 나와야 함.


3. 람다의 환경이 파이썬 3.8 이므로 우리도, 가상환경을 파이썬 3.8으로 만들어준다.

$ conda create -n lambda2 python=3.8

 

4. 가상환경으로 이동하고

$ conda activate lambda2

 

5. 디렉토리를 하나 만든다. 이름은 python 으로 만든다.

$ mkdir python

 

6. python 디렉터리로 이동

$ cd python

 

7. 판다스 라이버리를, 이 디렉토리에 설치한다.

$ pip install -t . pandas


8. 필요없는 파일 삭제

$ rm -rf *.dist-info __pycache__ pandas numpy



9. 아마존의 리눅스에서 설치될 판다스와 넘파이 파일을 다운로드 한다.
 링크주소 :  https://pypi.org/project/pandas/#files
                https://pypi.org/project/numpy/#files  를 웹브라우저에서 열어서,

10. 파이썬 3.8이므로, 위의 웹페이지에서 38로 검색한다.

11. 그 중에서 , manylinux ...X86_64.whl 파일의 링크 주소를 복사한다.

12. 복사한 링크 주소를, putty 로 가서, ec2에 다운로드 받는다.
wget 복사한 링크주소

예)
$ wget https://files.pythonhosted.org/packages/a2/9b/c4879904ed1706883eb0b126f1f4baa0992dfd61ad2aac7a7af82f01b256/pandas-1.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

 

13. 다운로드 받은 파일 2개를 압축을 푼다.
먼저 파일명을 whl => zip 으로 변경
mv ...numpy...whl ....numpy....zip
mv ...pandas...whl ....pandas....zip

예)
$ mv pandas-1.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl pandas-1.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.zip


14. 변경된 파일을 압축 푼다.
unzip numpy..... zip
unzip pandas..... zip

# 예)
$ unzip pandas-1.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.zip



15. 필요없는 파일들 삭제한다.

$ rm -rf *.zip *.dist-info



16. 상위 경로로 이동한다.

$ cd ..



17. python 폴더를 압축한다.

$ zip -r pandas_layer.zip python



18. 내컴퓨터의 웹브라우저에서, AWS 콘솔에 로그인한다.



19. S3 를 선택하고, 여러분 아이디-lambda-layers 라는 버킷을 만든다.



20. 버킷이 만들어지면, 그 버킷으로 이동해서, 위에서 만든 pandas_layer.zip 파일을
   업로드한다.


21. 저 파일은 내 컴퓨터에는 없으므로, 파일질라를 이용해서, 먼저 다운로드 받는다.



22. 아까의 버킷에, 다운로드 받은 pandas_layer.zip 파일을 업로드 한다.


23. 업로드가 완료되면, 파일명을 눌러서, 속성 부분의 *객체 URL* 을 링크주소복사 한다.


24. AWS 콘솔에서, 이번에는 람다로 이동한다.

25. 람다 화면에서, 왼쪽의 계층 메뉴를 선택한다.

26. 이름(pandas-numpy-layer) 적고, S3의 링크 넣고, x86_64, 호환 런타임 => python3.8 로 생성한다.

Amazon S3에서 파일 업로드 선택 후 버킷에 업로드 했던 파일의 복사한 주소를 입력



27. 람다 - 애플리케이션 메뉴로 가서, 우리가 만든 앱 선택후,
밑으로 스크롤 하면, ApiLambdaFunction 이 있다. 이것을 클릭!

28. Layers 를 클릭한 후, Add a layer 클릭

29. 사용자 지정 레이어를 선택한후, 아래쪽 목록 누르면, 우리가 만든 레이어 나온다.
버전 1누르고 추가 (맞는 버전) 확인 중

30. 비주얼 스튜디오 코드의 requirements.txt 파일에서 pandas 와 numpy 는 빼준다.
왜냐하면, 레이어에서 설치해줬기때문이다.