[AWS] S3 이벤트 설정해서 Lambda로 처리하기

Joney의 SW 공부 블로그·2023년 6월 28일
0

개요

S3에는 객체 생성이나, 수정, 삭제에 대해 이벤트를 발생하는 기능이 있다.

이런 기능을 사용해서, S3에 객체가 저장됐을 경우, Lamda를 사용해서 해당 객체의 데이터를 처리하는 등의 구조를 가져갈 수 있다.

설정 방법

본 글에서는 2가지 방법에 대해 설명

AWS Console에서 설정

  1. S3 이벤트를 처리할 Lambda 생성
  2. 이벤트를 설정하려는 Bucket 상세 보기
  3. 속성탭
  4. 이벤트 알림 생성
  5. 이벤트 유형 선택
  6. 생성한 Lambda 선택

해당 방법은 console에서 이루어지기 때문에 직관적이지만, Lambda 코드는 따로 배포해야하는 불편함이 있다.

Serverless Framework로 설정

그런 불편함을 없애기 위해서 Servless Framework를 사용해서 Lambda 배포와 S3 이벤트 설정을 동시에 할 수 있다.

  1. serverless.yml 파일을 아래와 같이 작성 후, Lambda가 처리할 코드 작성
service: s3-event // lambda 이름
frameworkVersion: '3'
 
provider:
  name: aws
  runtime: nodejs14.x
  region: ap-northeast-2
  timeout: 30
  versionFunctions: false
  iamManagedPolicies: arn:aws:iam::aws:policy/AmazonS3FullAccess  # S3에 있는 파일에 접근하기위해 설정

functions:
  s3event:
    handler: s3tords.test # Lambda가 처리할 함수명
    events:
      - s3:
          bucket: "s3-event-test"  # 데이터를 저장하는 S3 Bucket
          event: s3:ObjectCreated:*  #  S3 이벤트 유형
          existing: true  # 이미 존재하는 S3에 접근하기위한 설정
  1. lambda 배포
serverless deploy

serverless의 더 자세한 설정 방법은 문서 참조

profile
SW 지식 노트 블로그

0개의 댓글