brunch

10탄-Lambda이용 Thumbnail 생성법

코드필요

by Master Seo

목적

lambda를 이용해 이미지 썸네일을 만들어보자.

cloudwatch log를 이용해 모니터링하자.


구성

사용자 -----s3 (소스) ---- Lambda ---- s3 (타켓)

q-ok


1 lambda.png




순서

<1> S3 버킷 2개 만들기

<2> Lambda 만들기

<3> 기능 테스트

<4> 모니터링 , 로깅



<1> S3 버킷 2개 만들기

1

seo-bucket-13

seo-bucket-13-resized

// 버킷이름뒤에 resized라고 해야한다. 이름 변경 금지. 소스에 resized에 넣는다.

// 지역도 변경하지 마세요


2

버킷 ARN을 복사해 놓는다.


3

이미지 파일 1개 올리기

1.jpg 파일 하나를 올린다.



<2> Lambda 만들기

1

람다 > 함수 생성

seo-image-lambda1

python 3.7

기본 실행 역할 변경 >

기존 역할 사용 > 선택 >


seo-lambda-image-resize-role

// S3에 데이터를 넣는 권한이 필요하다.


{

"Version": "2012-10-17",

"Statement": [

{

"Action": [

"logs:*"

],

"Resource": "arn:aws:logs:*:*:*",

"Effect": "Allow"

},

{

"Action": [

"s3:GetObject",

"s3:PutObject"

],

"Resource": "arn:aws:s3:::*",

"Effect": "Allow"

}

]

}


> 함수 작성


2

람다를 실행시키는 소스로 S3 이벤트를 사용해보자. ?

트리거 추가

S3

버킷

seo-bucket-12

모든 객체 생성 이벤트


3

재귀적 호출 체크 > 추가


10 s3 trigger.png


4

이벤트 트리거로 사용할수 있는것들

1 event.png


5

// 람다 함수 코드 반영하기

코드 클릭 > 작업 > Zip file upload ( 소스코드 작성 파일)

Create-Thumbnail"Lambda 함수" 의 배포 패키지가 너무 커서 인라인 코드 편집을 활성화할 수 없습니다. 그러나 함수를 호출할 수 있습니다.


6

런타임 설정 > 편집 > 핸들러

CreateThumbnail.handler

저장

// 참고 : 메모리를 늘리면 CPU도 증가함.

시간초과는 최대 시간 설정

VPC 안에 넣을지 , 밖에 넣을지 선택 - 여기서는 VPC사용하지 않음.



<3> 기능 테스트

1

테스트 > 이벤트 템플릿 > Amazon s3 put 선택

이벤트 이름

upload1


2

이벤트 수정 3곳

s3 버킷 2곳을 수정해야 한다.

S3가서 버킷 ARN복사해서 수정한다.

30 s3 2곳 변경.png


3

key에 1.jpg로 변경

30 s3 3곳 변경.png


4

테스트

성공 확인


5

S3가서 썸네일 확인

seo-bucket-13-resized 버킷에서 확인

3.1 KB로 줄어듬

100 썸네일.png



<4> 람다 > 모니터링에서 결과 확인

1.

람다에서 그래프로 확인

람다 > 모니터링 > Cloud watch 로그 보기


또는

CloudWach > 로그 > 로그 그룹에서 보기 > /aws/lambda/seo-lambda-image-resize


100 결과.png


감사합니다.


keyword
매거진의 이전글10탄-API Gateway 시작하기