군침이 싹 도는 코딩
Lambda layer 만들기 (1) numpy, pandas 라이브러리를 만드는 법 본문

# AWS lambda serverless 를 만들어서 api를 실행시키면 이러한 오류가 뜰때가 있다
이 오류는 람다의 할당량을 초과했을때 나는 에러이다 이것을 해결하기 위해서는
레이어를 따로 만들어줘서 그 안에 용량이 큰 라이브러리를 설치해주어야 한다

# 레이어는 여기서 확인할 수 있다

$conda create -n lambda39 python=3.9
# 바로 람다에 깔수 없기때문에 SSH를 이용해 EC2 서버에 접속해준다
그 뒤 파이썬이 없다면 아나콘다부터 설치하고 가상환경을 파이썬 3.9버전으로 세팅한다
$conda activate lambda39 # 가상환경 변경
$mkdir python # python 폴더 만들기
$cd python # python 디렉토리로 이동
# 그 다음 가상 환경을 이동하고 디렉토리를 하나 만든다 이름은 python으로 한다
이후에 새롭게 추가할 레이어를 담을 디렉토리를 만들때에도 이름은 반드시 python으로 한다
그 후 python 디렉토리로 이동

넘파이 : $wget https://files.pythonhosted.org/packages/43/55/fea3342371187dea4044521c0ba82b90fb5a42fb92446be019b316dd3320/numpy-1.24.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
판다스 : $wget https://files.pythonhosted.org/packages/5e/ed/5c9cdaa5d48c7194bef4335eab3cdc2f8afa868a5546027e018ea9deb4c3/pandas-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pytz : $wget https://files.pythonhosted.org/packages/3d/19/4de17f0d5cf5a0d87aa67532d4c2fa75e6e7d8df13c27635ff40fa6f4b76/pytz-2022.7-py2.py3-none-any.whl
# 아마존 리눅스에 설치 할 넘파이 판다스 pytz를 pypi에서 찾아 다운로드한다 설치 명령어는 wget 이다
해당 코드를 달러사인을 빼고 붙여넣기해도 된다 잘 들어갔는지 확인도 해준다

# 이후에 다른 라이브러리도 계층으로 추가하고싶다면 pypi에서 다운로드 받으면 된다
이때 그 라이브러리를 쓰기 위해 필요한 라이브러리는 따로 알려주지 않기때문에
pip install 해당라이브러리를 인스톨해서 확인하면 된다
예시에서는 email_validator를 설치하자 3개의 라이브러리가 설치된것이보인다
이것을 모두 설치해주지 않으면 에러가나기때문에 꼭 확인해서 전부 설치해준다

넘파이 : $unzip numpy-1.24.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
판다스 : $unzip pandas-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pytz : $unzip pytz-2022.7-py2.py3-none-any.whl
# 다운로드 받은 파일을 압축을 풀어준다 압축을 푸는 명령어는 unzip 이다

$rm -rf 파일명(폴더명) # 하나씩 삭제하고싶을때
$rm -rf *.whl # .whl을 전부 삭제하고싶을때
# 필요없는 원본파일(.whl) 을 삭제한다 명령어는 rm -rf 파일명이나 디렉토리명인데
rm -rf *.whl로 whl 확장자가 붙은것을 한번에 삭제할 수 있다

$cd ..
# 이제 python 폴더가 보이는 상위 폴더로 이동한다 명령어는 cd .. 이다

$zip -r 압축파일명 압축할디렉토리명 # 명령어
$zip -r numpy_pandas_layer_39.zip python # 해당 예시에서 사용한 코드
# 이제 파이썬 폴더를 압축해야한다 압축 명령어는 zip -r 압축파일명 압축할디렉토리명

# 이제 파일질라를 통해 EC2서버로 연결한 다음 압축했던 python 디렉토리를 로컬 컴퓨터에 다운로드한다
'AWS > Lambda' 카테고리의 다른 글
AWS lambda 지연시간에 따른 상태코드 500 해결법 (0) | 2023.01.17 |
---|---|
lambda layer 만들기 (2) (0) | 2023.01.11 |
AWS lambda serverless 배포 시 한국으로 바꾸는 법 (0) | 2023.01.11 |
AWS Lambda를 이용한 Serverless 배포하기 (2) (0) | 2023.01.11 |
AWS Lambda를 이용한 Serverless 배포하기 (1) (0) | 2023.01.10 |