만들어 둔 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. 사용자 지정 레이어를 선택한후, 아래쪽 목록 누르면 , 우리가 만든 레이어가 나온다.
'백엔드' 카테고리의 다른 글
백엔드 : 이미지를 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 |