본문 바로가기
클라우드

Serverless Framework #6 업로드 이미지의 썸네일 자동 생성

by ^..^v 2020. 11. 10.
728x90
반응형

 

S3 버킷에 PNG 형식의 이미지 파일을 업로드하면 지정된 크기의 썸네일 이미지를 자동으로 생성해서 저장하는 람다 함수를 구현해 봅니다. 

썸네일 이미지 생성을 위해서는 Pillow 라이브러리(pillow.readthedocs.io/en/stable/)를 사용하며, 해당 라이브러리를 람다 실행 환경에 맞도록 컴파일하기 위해서 serverless-python-requirements 플러그인을 활용합니다. 

 

Pillow 라이브러리

pillow.readthedocs.io/en/stable/

파이썬 이미징 라이브러리

여러 이미지 파일 포맷을 지원하고, 이미지 내부 데이터를 액세스할 수 있으며, 다양한 이미지 처리 기능을 제공

원본 이미지로부터 썸네일 생성, 포맷 변경, 프린팅, 크기 변경, 회원, 필터링 등 다양한 이미지 프로세싱이 가능

 

serverless-python-requirements 플러그인

www.serverless.com/plugins/serverless-python-requirements

 

람다 함수 배포 시 컴파일 환경과 실행 환경이 달라서 발생하는 문제를 해결하기 위한 플러그인 

람다 함수가 실행되는 환경(운영체제)에서 컴파일을 지원 → 람다가 동작하는 운영체제 환경의 도커 이미지로 컨테이너를 생성하고 해당 컨테이너에서 컴파일 PC에 도커가 설치되어 있어야 함

requirements.txt 파일을 통해서 패키지를 관리 → 배포를 위해서 serverless.yml, hander.py, requirements.txt 3개의 파일이 필요

 

플러그인 설치

 

serverless.yml 파일에 플러그인 추가

 

python-s3-thumbnail 파이썬 템플릿 서비스 생성

 

handler.py 작성

S3 버킷에 PNG 형식의 파일이 등록되면 해당 이미지의 썸네일을 생성해서 버킷에 저장

소스 코드에 한글이 포함된 경우 오류가 발생할 수 있으므로 배포 시에 한글 주석을 삭제하고 배포해야 함

 

serverless.yml 작성

 

requirements.txt 작성

 

배포

 

버킷 생성 확인

 

람다 함수 생성 확인

 

이미지 파일 업로드 시 썸네일 생성 확인

 

역활 생성 확인

 

로그 생성 확인

 

도커 이미지 생성 확인

728x90
반응형

댓글