[Hands On] S3 트리거에 의한 Lambda의 압축 파일 처리

1. 준비

2. S3 구성

  • AWS Management Console 로그인
  • S3 메뉴 이동
  • 버킷만들기(ex. 버킷명 : s3-techday-da-202202)
  • 새 버킷명 입력 > AWS 리전(아시아 태평양(서울) ap-northeast-2) 선택 > 버킷만들기
  • 생성된 버킷 선택 > 폴더 만들기 > 새 폴더 생성
  • 공공데이터 다운로드받은 원본 파일 업로드할 폴더 생성(ex. 폴더명 : org)
  • 람다에 의해 압축 풀린 csv 파일이 업로드될 폴더 생성(ex. 폴더명 : new)

3. Lambda 구성

  • Lambda > 함수 메뉴 이동
  • 함수 생성
  • 블루프린트 생성 > s3_get_object_python 선택 > 구성

블루프린트는 Lambda를 AWS 서비스 또는 인기 있는 타사 애플리케이션과 함께 사용하는 방법을 보여주는 샘플 코드를 제공합니다. 블루프린트에는 Node.js 및 Python 런타임에 대한 샘플 코드 및 함수 구성 사전 설정이 포함되어 있습니다.

  • 새 함수명 입력
  • 실행역할 > AWS 정책 템플릿에서 새 역할 생성 > 새 역할 이름 입력
  • 블루프린트에서 샘플 Lambda 함수 코드 제공 > 함수 생성

생략 가능!

  • 블루프린트로 제공해주는 샘플 코드 테스트 
  • name은 Lambda에서 읽을 S3버킷명으로 변경
  • arn은 Lambda에서 읽을 s3버킷의 arn으로 변경
  • key는 Lambda에서 읽을 S3객체 key로 변경
  • 테스트 생성
  • 테스트
  • 성공 – S3객체의 Content Type이 정상 출력됨
  • Lambda 함수 코드 변경 작성
  • Deploy 버튼 클릭하여 변경된 코드 저장
  • 구성 > 일반구성 > 편집 > 메모리, 제한시간, IAM(실행 역할) 설정
  • 구성 > 권한 > 역할이름 클릭하여 IAM 메뉴로 진입
  • Lambda에 부여한 역할 > 권한 > 권한추가 > 인라인 정책 생성
  • Lambda > 추가 트리거 > 트리거 추가 
  • 트리거 구성 > s3 선택 > 버킷선택(업로드할 버킷 선택) > 이벤트유형 : 모든 객체 생성 이벤트 > 접두사입력 org/ (업로드할 경로명) > 접미사 입력 .zip > 재귀호출 확인란 체크 > 추가 버튼 클릭

4. s3트리거에 의한 Lambda 함수 호출 테스트

  • s3에 생성한 버킷의 원본파일 업로드할 폴더 경로에 공공데이터(.zip 압축 원본) 업로드
  • s3에 생성한 버킷의 Lambda에 의해 처리된 csv 파일이 생성해 놓았던 폴더에 정상적으로 업로드 되었는지 확인
  • 실패 시 Lambda에 모니터링 메뉴에 로그에서 CloudWatch 로그를 통해 추적 가능