S3 lambda trigger 삽질..

김건우·2024년 8월 1일

트러블슈팅

목록 보기
2/5

이번에 비디오 스트리밍 작업을 수행하던 중 약 1시간정도 삽질한 사건이다.

개요는 다음과 같다.

create_mediaconvert_job 이라는 람다함수는 input s3에 올라온 video 파일을 이용해서 hls 프로토콜을 통해 트랜스코딩한 결과 파일과 썸네일 이미지를 output s3에 저장하는 과정을 담당한다.

여기서 트리거 라는 것을 추가할 수 있는데
말 그대로 해당 람다함수가 실행될 때를 정해주는 것이다.

이처럼 설정한 input s3에 모든 객체 생성 이벤트 에 대해서 접두사나 접미사를 설정할 수 있다.

이번에 처음 사용해보는 거라 여러개의 lambda 함수도 만들어보고, 그 안에서 트리거도 여러개 생성해봤는데, 여기서 문제가 터졌다..

약간 설명을 하자면 프로젝트에서 게시글에는 영상 또는 이미지가 들어갈 수 있고, 사용자의 프로필 이미지 또한 필요했다.

그렇기에 s3에 올라갈 파일은 영상, 이미지가 필요했는데

처음에는 input s3에 image와 video를 계층별로 구별해서 video라면 트랜스코딩 과정을 거친 후 outpur s3로, image라면 copy 작업으로 output의 원하는 경로로 넣어주는 작업을 진행했다.

s3에 들어가는 파일을 굳이 copy 작업으로 원본-복사본을 저장해야할까 라는 의문이 있었고, 불필요한 작업이라 생각해 이미지는 output s3로 직접 업로드하는 방식을 채택했다.

그렇기에 기존 copy 작업 lambda 함수는 필요가 없어졌기에 삭제 처리를 했는데, 그 안에 있던 트리거는 cascade 하게 삭제가 되지 않던 것이다.. (내 예상으론)

그래서 기존 s3 폴더구조를 변경하면서 trigger의 접두사를 변경함에 계속 제약이 생겼다..

원래는 1개가 있어야할 이벤트에 여러개가 남아 있었다.. (위는 1개 일때 예시)

s3의 버킷 -> 속성 -> 이벤트 알림에 들어가면 trigger로 설정한 이벤트의 알림 목록을 볼 수 있다.

이를 삭제처리해주니 접두사에 제약을 해제할 수 있었다.!!

profile
공부 정리용

0개의 댓글