ddps-lab / cloud-usage

MIT License
1 stars 1 forks source link

Feat: s3 monitoring code #15

Closed Kim-Yul closed 1 year ago

Kim-Yul commented 1 year ago
Kim-Yul commented 1 year ago

리뷰해주신 내용 확인하여 코드 수정은 완료하였으나, 하나의 파일로 진행하면서 event bridge이 전달하는 인자값에 따라 실행되는 함수가 다르도록 확인하고 있습니다. 이게 완료되면 수정된 내용 업로드 하겠습니다!

Kim-Yul commented 1 year ago

Issue

  1. 2개의 파일이 아닌 1개의 파일에서 동작하기
  2. 각 함수의 기능 주석달기
  3. 오류나는 버킷 예외처리하기
  4. 비슷한 역할을 하던 두 함수 하나로 합치기

Commant

  1. 2개의 파일이 아닌 1개의 파일에서 동작하기
    • 하나의 파일인 aws_s3_bucket_list.py에서 동작할 수 있도록 수정 완료하였습니다.
    • 두 개로 나누어져 있어서 각각의 event bridge의 신호에 맞게 동작하면 되었던 것을 하나의 파일로 묶게 되니 event bridge 신호에 맞추어 각각 함수를 다르게 실행해야 하는 부분에서 막히어 시간이 오래걸렸습니다. 다른 분들께서 아이디어를 던져주셔서 진행할 수 있었습니다. 감사합니다.
    • event bridge는 총 4개가 걸려 있습니다. 이에 따른 설명은 이후 밑에 추가하도록 하겠습니다.
  2. 각 함수의 기능 주석달기
    • 모든 함수에 주석을 달았으나 이벤트 신호에 맞추어 실행할 수 있도록 version이라는 것을 추가하였는데, 이에 따른 설명은 밑에 덧붙이겠습니다.
  3. 오류나는 버킷 예외처리하기
    • 각각 ClientError와 NameError인 것을 확인하였고 이와 관련된 예외처리를 진행 완료하였습니다. 이에 ClientError의 경우 모듈 import가 필요해 해당 코드가 한 줄 추가되었습니다.
  4. 비슷한 역할을 하던 두 함수 하나로 합치기
    • ‘generate_curl_message_block’ 함수와 ‘generate_curl_message’ 함수는 paload의 형식을 구분하던 것이었는데 이를 version과 text에 맞추어 실행할 수 있도록 하여 ‘generate_curl_message’ 함수로 합치었습니다.

README.md

  1. event bridge 와 version 설명

    현재 4가지의 이벤트가 추가되어 있습니다. 설명은 다음과 같습니다.

    • usage-s3-1st_Month
      • 매달 1일 오전 10시마다 s3 버킷 전체 목록을 슬랙에 알립니다.
      • version = 0 , default 값으로 지정되어 있습니다.
    • usage-s3-1st_EvenMonth
      • 짝수달 1일 오전 10시 5분마다 s3 버킷 중 Glacier로 옮길 예정인 목록을 슬랙에 알립니다.
      • version = 1, Glacier 목록을 슬랙에 알립니다.
    • usage-s3_6th_EvenMonth
      • 짝수달 6일 오전 10시마다 s3 버킷 중 Glacier로 옮길 예정인 목록을 슬랙에 알립니다.
      • version = 1, Glacier 목록을 슬랙에 알립니다.
    • usage-go_to_Glacier
      • 짝수달 6일 오전 10시 30분마다 Glacier로 옮겨질 목록의 리스트를 다른 lambda에 제공합니다.
      • 이때 제공 형식은 lambda이며, 불필요한 전체 파일 크기 및 최근 액세스 일자는 넘기지 않습니다.
      • 오로지 bucket name 만 제공되며 일부 리스트 형식으로 넘어갈 수 있으니 isinstance()를 이용하여 bucket name 만 사용할 것을 권장합니다.
      • version = 2, Glacier 목록을 리스트 형식으로 다른 lambda에 event로 제공합니다.
  2. 현재 aws console lambda에 모든 내용을 올려둔 상태이며, Glacier 자동화 lambda 생성시, 현 lambda 내의 arn 주소만 변경해주면 이용가능합니다.
  3. event bridge의 간격이 5분인 것은 s3의 버킷을 읽는데 상당한 시간이 소요되기 때문에 널널하게 산정하였습니다.
Kim-Yul commented 1 year ago

function name

  1. aws_s3_bucket_list_by_size_and_date.py : S3 전체 리스트를 슬랙에 알림
  2. aws_list_to_archive_from_s3_bucket.py : Glacier로 이동될 버킷 리스트를 슬랙에 알림
  3. aws_list_to_move_to_archive_from_s3.py : Glacier로 옮기는 자동화 코드로 리스트 넘김

event bridge name

  1. report_a_s3_bucket_list : 매달 1일 오전 10시마다 S3 전체 목록 알림
  2. report_a_schedlued_archive_list : 짝수달 1일 오전 10시 5분마다 Glacier 이동 예정 목록 알림
  3. report_an_archive_list : 짝수달 6일 오전 10시마다 Glacier 이동 예정 목록 알림
  4. send_an_archive_to_lambda : 짝수달 6일 오전 10시 30분마다 S3 버킷 중 일부가 Glacier로 이동하는 알림
Kim-Yul commented 1 year ago

코멘트 달아주셨던 부분 모두 수정했습니다.

Function name

event bridge name

  1. report_a_s3_bucket_list
    • 매달 1일 오전 10시마다 S3 전체 목록 알림
  2. report_a_schedlued_archive_list
    • 짝수달 1일 오전 10시 5분마다 Glacier 이동 예정 목록 알림
  3. report_an_archive_list
    • 짝수달 6일 오전 10시마다 Glacier 이동 예정 목록 알림
  4. send_an_archive_to_lambda
    • 짝수달 6일 오전 10시 30분마다 S3 버킷 중 일부가 Glacier로 이동하는 알림

위의 내용으로 수정 완료했습니다. name 과 관련하여 복잡하거나 다른 이름으로 변경해야 할 경우가 아니면 코드 상으로 더 변경사항이 없을 듯합니다. 내용 괜찮다면 머지하여 다음 작업으로 진행하겠습니다! (코멘트를 깜빡하여 죄송합니다ㅜ)