만들어 둔 api가 로컬에서는 잘 돌아가지만 배포 한 뒤 테스트를 해볼 경우 안되는 경우가 있다.
pandas / numpy 가 안되기 때문이다.
그럴 때 이 방법을 사용하면 좋다.
(작성자의 경우 비주얼 스튜디오를 사용하였습니다.)
1.putty 이용해서 ec2에 접속한다.
2. 파이썬이 없으면, 아나콘다를 설치한다.
3.람다의 환경이 파이썬 3.8이므로, 가상환경을 파이썬 3.8 버전으로 만들어준다.
$ conda create -n lambda python=3.8
(lambda 라는 가상환경이름과 3.8 버전의 python을 기반으로 한다.)
4.가상환경으로 이동 -
conda activate lambda
5. 디렉토리를 하나 만든다. 이름은 python으로 만든 뒤 이동한다.
$mkdir python
6. 만든 디렉토리로 이동한다.
$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 복사한링크 주소
13. 다운로드 받은 파일 2개를 압축을 푼다.
먼저 파일명을 whl => zip 으로 변경
(이미지에서는 pandas만 사용했다.)
$ mv ....numpy.....whl ....numpy....zip
$ mv ....pandas.....whl ....pandas....zip
14. 변경된 파일을 압축 푼다.
$ unzip numpy....zip
$ unzip pandas....zip
15. 필요없는 파일들 삭제한다.
$ rm-rf *.zip *.dist-info
16. 상위 경로로 이동한다.
$cd ..
17. python 폴더를 압축한다.
$ zip pandas_layer.zip .python
18. 내컴퓨터의 웹브라우저에서, AWS 콘솔에 로그인한다.
19. AWS 사이트에서 S3를 선택하고, 자신의 아이디-lambda-layers라는 버킷을 만든다.
20. 버킷이 만들어지면, 그 버킷으로 이동해서, 위에서 만든 pandas_layer.zip 파일을
업로드한다.
21. 저파일은 내컴퓨터에는 없으므로, 파일질라를 이용해서, 먼저 다운로드 받아준다.
22. 아까의 버킷에, 다운로드 받은 pandas_layer.zip파일을 업로드한다.
23. 업로드가 완료되면, 파일명을 눌러서, 속성 부분의 '객체 URL'을 링크주소 복사한다.
24.AWS 콘솔에서 , 이번에는 ,람다로 이동한다.
25. 람다 화면에서, 왼쪽의 계층 메뉴를 선택한다.
26. 이름적고, S3의 링크넣고 , x86_64, python3.8로 생성한다.
27. 람다- 애플리케이션 메뉴로 가서, 우리가 만든 앱 선택후,
밑으로 스크롤하면, ApiLambdaFunction 이 있다. 이것을 클릭!
28. Layers 를 클릭한 후 , Add a layer 클릭
29. 사용자 지정 레이어를 선택한후, 아래쪽 목록 누르면 , 우리가 만든 레이어가 나온다.
numpy
NumPy is the fundamental package for array computing with Python.
pypi.org
pandas
Powerful data structures for data analysis, time series, and statistics
pypi.org
'백엔드' 카테고리의 다른 글
백엔드 : 이미지를 S3로 보내는 코드 (0) | 2022.01.13 |
---|---|
백엔드 : 이미지를 S3에 보내는 방법 (0) | 2022.01.13 |
백엔드 : CI/CD를 위한 깃허브 생성 및 연결 / serverless 깃허브 연결하기 (0) | 2022.01.11 |
백엔드 : AWS Lambda 서버 구축하기 (IAM) (0) | 2022.01.11 |
백엔드 : On-Premise 와 Cloud Services 온프레미스 클라우드 (0) | 2022.01.10 |