brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 28. 2020

 10탄-Lambda이용 Thumbnail 생성법

코드필요

목적

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

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


구성

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

q-ok





순서

<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

재귀적 호출 체크  > 추가 



4

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


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복사해서 수정한다.


3

key에 1.jpg로 변경


4

테스트

성공 확인


5

S3가서 썸네일 확인

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

3.1 KB로 줄어듬



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

1.

람다에서 그래프로 확인

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


또는

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



감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari