이벤트 호출( Event Call )
。S3 버킷내객체의생성 / 삭제 / 변경의이벤트발생 시 다른서비스(AWS Lambda... etc )를 호출하는 기능
▶ 주로객체 업로드시검증하거나,슬랙으로이벤트를 통해알람을 전달 가능
。prefix지정 시 해당버킷 디렉토리내객체에서 발생한상호작용에 대해서만이벤트 발생하도록 설정 가능
。prefix를 지정하여객체가 입력된디렉토리와객체가 산출될디렉토리를 서로 다르게 하여무한루프를 방지
S3 버킷에객체 업로드시이벤트가 발생되어AWS Lambda 서비스와 연동이 가능
。이미지가저장용도 S3 버킷으로업로드된 경우이벤트가 발생되어AWS Lambda에 의해정적호스팅 S3 버킷의정적컨텐츠파일에동적으로 반영 가능
▶이미지 업로드시이벤트 트리거가 발생하여AWS Lambda에 의해썸네일 파일생성 및웹 호스팅 S3 버킷내정적컨텐츠 파일로 설정
AWS S3 이벤트 유형
객체 생성 이벤트:
。전체 생성 이벤트:s3:ObjectCreated:*
。전송:s3:ObjectCreated:Put
。게시:s3:ObjectCreated:Post
。복사:s3:ObjectCreated:Copy
。멀티파트 업로드 완료:s3:ObjectCreated:CompleterMultipartUpload
객체 제거 이벤트:
。전체 제거 이벤트:s3:ObjectRemoved:*
。영구 삭제:s3:ObjectRemoved:Delete
。삭제 마커 생성:s3:ObjectRemoved:DeleteMarkerCreated
객체 복원 이벤트:
。전체 복원 이벤트:s3:ObjectRestore:*
。복원 시작:s3:ObjectRestore:Post
。복원 완료:s3:ObjectRestore:Completed
。복원 객체 만료:s3:ObjectRestore:Delete
객체 수명주기 이벤트:
。수명주기 전환 이벤트:s3:LifecycleTransition
。모든 수명주기 만료 이벤트:s3:LifecycleExpiration:*
。객체 만료 이벤트:s3:LifecycleExpiration:Delete
。삭제마커 지정 객체 만료 이벤트:s3:LifecycleExpiration:DeleteMarkerCreated
AWS S3 이벤트 호출시AWS Lambda와 연동
AWS Lambda의AWS S3에 대한권한을 지닌IAM Role생성
。사용사례 : Lambda를 지정 후권한:AmazonS3FullAccess,CloudWatchFullAccess지정
Lambda -> 함수 생성을 통해함수 생성
。node.js설정 및사용자 지정 실행 역할에서 생성한IAM Role설정
。이후이미지를resize하는로직을 작성한코드를 업로드
파일 업로드용도의버킷 생성및이벤트설정
。버킷 생성이후S3 -> 버킷 -> 속성 -> 이벤트 알림에서이벤트 알림 생성
▶prefix지정 시 해당버킷 디렉토리내객체에서 발생한상호작용에 대해서만이벤트 발생
。이벤트 유형을 지정 이후이벤트 처리할AWS Lambda를 지정
▶ 이후 해당Lambda 함수에S3이트리거로 추가됨
S3 버킷내이벤트알림의prefix로 정의된/images 폴더생성 및이미지 파일을업로드할 경우 연동된AWS Lambda가 작동
▶images/ 디렉토리내파일 업로드시AWS Lambda에 의해resize되어resize/ 디렉토리내 저장
。이후 해당AWS Lambda 함수에서CloudWatch를 통해지표를 확인 가능