운동하는 공대생

AWS Lambda(layer) 본문

AWS/Lambda

AWS Lambda(layer)

운동하는 공대생 2022. 10. 6. 15:44
728x90
반응형

1. Intro

AWS Lambda를 사용하다 보면 python에서 제공하거나 외부 라이브러리를 사용하지 못하는 경우가 발생한다. 이를 해결하기 위해서는 Layer(계층)을 Lambda에 추가를 해줘서 외부 라이브러리를 사용이 가능하다.

먼저 Lambda에서 함수를 호출하였을 때 그 함수가 Lambda에서 제공하지 않는 함수라면 사진과 같이 에러가 발생한다.

2. How to make layer

Lambda에서 제공하지 않는 함수를 추가를 하려면 먼저. zip 파일 형식으로 함수를 압축한 파일을 만들어야 한다.

먼저 기본적으로 맥북에서 제공하는 터미널을 이용하여 python 이라는 폴더를 생성하고 그 폴더 안에 Lambda 런타임 파이썬 버전에 맞는 외부 함수 모델을 설치를 해준다. 이때 중요한 부분은 파이썬 버전에 따라 다른 외부 함수 버전압축 폴더 이름을 python으로 지정을 해야 한다는 점이다.

그리고 Lambda에서 제공하는 layer 방식은 함수를 총 250MB까지 제공을 함으로 함축을 하기 이전의 외부 함수의 파일 용량이 250을 넘지 않게 해야 한다.


mkdir python  
cd python  
pip install xgboost== (xgboost 버전에 따라 지정가능) -t .  

파일을 압축했다면 파일 용량에 따라 계층을 추가하는 방식이 다르다.

압축 파일이 10MB 이상이라면 AWS에서 제공하는 S3 서비스에 이 파일을 업로드하고 URL을 통해서 파일을 업로드해야 한다.

이후 Lambda함수에 맞는 런타임과 아키텍처를 지정하고 layer을 생성하고 람다 함수에 추가를 해준다.

정상적으로 계층을 만들고 추가하였다면 이후 Lambda에서 외부 함수를 호출하는 것이 가능하다.

(버전 문제로 아직 성공을 못했습니다. ㅠㅠ 나중에 성공하면 추가로 사진 업로드 하겠습니다.)

728x90
반응형

'AWS > Lambda' 카테고리의 다른 글

Docker Container Image 로 AWS Lambda 함수 구현  (0) 2022.10.31
AWS Lambda 에서 외부 API 호출하기(OCR)  (0) 2022.10.11
AWS Lambda(layer-계층 생성하기)  (0) 2022.10.07
AWS Gate Way(Lambda)  (1) 2022.09.21
Comments