본문 바로가기
코딩/Python

[AWS Lambda] Layer를 사용하여 라이브러리 업로드

by Say_Young 2022. 9. 17.

AWS Lambda에 파이썬 코드를 올려서 실행하는 것에는 시행착오가 꽤 있을 것 같다. 

 

내 PC의 경우 코드 실행에 필요한 라이브러리 등이 설치되어 있으므로 코드가 실행되지만, 

 

아마존 서버에서 실행하려면 이러한 라이브러리 파일 등을 업로드해야 한다. 두 가지 방법이 있는데, 첫째는 zip 파일 형태로 코드와 함께 업로드하는 것이고 두 번째는 Layer라는 것을 이용해서 업로드하고 코드에서 사용하는 것이다. 아래 블로그를 참고하여 배울 수 있을 것 같다. 

 

https://blog.naver.com/chandong83/221852027113

 

AWS 람다(AWS Lambda) 계층(Layer)를 이용해 파이썬 패키지(Package, Library) 사용하기

aws 람다를 작성하다 보면 기본 제공 패키지 외에 새로운 패키지를 설치해 사용해야 할 때가 있다. 예전에...

blog.naver.com

셀레니움을 AWS Lambda에서 구동하는 것을 API(Application Programming Interface(애플리케이션 프로그램 인터페이스))로 만들어, 테스트 코드를 자신 뿐 아니라 다른 사람도 실행해 볼 수 있도록 하는 것도 가능하다고 한다. 하지만 지금 배울 단계는 아니라고 생각한다. 
https://dev.to/awscommunity-asean/creating-an-api-that-runs-selenium-via-aws-lambda-3ck3

 

Creating an API that runs Selenium via AWS Lambda

Being an automation tester, my job is to automate everything. As I was running my test script via...

dev.to

 

1. 필요로 하는 패키지를 설치한다. 패키지 설치 폴더명은 python이어야 한다. selenium과 python-telegram-bot을 설치한다.

- 커맨드라인으로 설치 대상인 폴더로 이동, 아래 명령어로 셀레니움과 텔레그램봇을 설치한다. 해당 폴더에 설치하려면 끝에 -t . 을 붙인다. 

pip3 install selenium -t .
pip3 install python-telegram-bot -t .

- 로컬에서 작성한 코드는 chromedriver_manager를 사용했었는데, AWS Lambda에서는 chrome --version 명령어를 lambda가 못 읽는다고 오류를 뱉어 사용이 불가능하다고 하니 다른 방법을 찾아야 했다. 

- chrome driver라는 리눅스 실행파일을 layer로 깔아 두고 파이썬 코드에 설정값을 넣어주면 실행이 가능하다고 한다.

(https://newdeal123.tistory.com/76)

 

[AWS] lambda에서 chrome-selenium 크롤링 환경 설정하기

최근 프로젝트 작업 중 팀원이 만든 Jupyter notebook을 AWS lambda로 옮겨 자동화를 시켜야 할 Task가 생겼습니다. Jupyter는 python코드로 변환해서 사용하면 되고, 다른 과정도 처음에는 대수롭지 않게 생

newdeal123.tistory.com

- linux용 chromedriver를 설치하여 python폴더의 bin 폴더 안에 넣는다.

 

2. python 폴더를 통채로 압축한다. 

 

3. AWS Lambda로 이동하여 레이어를 추가한다(계층 생성).

 

이름: 아무이름이나 

설명: 안써도됨

python zip 파일 업로드 해 준다

호환 런타임: python 3.9 선택

 

4. 함수 생성 및 레이어 추가

(1) 함수생성 : 새로 작성 선택 - 함수 이름 기재, 런타임은 Python3.9 기재 - 함수생성

(2) 레이어 추가: 함수 개요 부분에 Layers 클릭 

(3) 사용자 지정 계층에서 myLayer1 선택, 버전 1 선택

4. 테스트

함수에 import selenium을 입력하고 Deploy를 클릭한다. 

테스트 탭으로 이동하여 테스트 버튼을 클릭한다. 

실행 결과 라이브러리를 정상적으로 사용할 수 있다. 

댓글