본문 바로가기

ETC

사내 담당 업무 기록 2

반응형

2023.08.17 - [ETC] - 사내 담당 업무 기록 1

 

사내 담당 업무 기록 1

Project Infra 글로벌 프로젝트 Backend Sprong boot - AWS EC2 Frontend Node + Next.js - AWS EC2 Database AWS RDS - Aurora MySQL Serverless Excel Uplaod - Node Image Thumbnail - Node RDS Alarm - Python 내부 기능 Excel Upload UI에서 엑셀 파일

xddsr123.tistory.com


RDS Alarm - 수정

  • 사내에서 사용하는 Slack의 API 중 chat.postMessage 또는 WebHook은 초당 1번의 메세지 송신이 가능하며 특정 상황은 예외가 있다고 한다. 그리하여 API를 수정하게 되었다.
    DOC
    • 베이스
      1. Python으로 작성된 코드이다.
        나는 고연차도 아니고 JAVA개발자다. 그냥 그렇다.
      2. 너무 많은 메세지를 보내게 되면 성공이 아닌 실패의 에러가 나며 "HTTP/1.1 429 Too Many Requests"의 에러가 나온다.
        DOC
      3. 해당 기능은 Slack Bot으로 동작한다.
      4. 제한은 Slack Bot 1개의 제한이다.
      5. 위 사항들을 인지 후 해당 기능 생성시에 Bot을 이미 여러개 생성해두었다.
      6. 기존 기능은 여러개의 Bot의 정보 중 랜덤으로 1개의 Bot을 선택 하여 메세지를 송신한다.
    •  구상 
      • Bot의 수량을 늘린다.
        - 이후 관리에 문제가 생길 수 있다.
      • Bot 선택을 순차적으로 한다.
        - 이 역시 중복이 발생할 가능성이 존재한다.
      • AWS SQS 도입을 고려한다.
        - 비용의 문제가 존재한다.
  • 선택과 수정
    • Bot 선택을 순차적으로 한다. + Bot의 수량을 늘린다.
      1. chat.postMessage의 API를 최 우선으로 실행한다.
      2. API와 통신하기 위해 Main Bot을 생성한다.
      3. 기존 Bot을 Sub Bot의 개념으로 전환 후 위 API의 통신이 실패 시 Sub Bot(1)의 WebHook을 이용하여 메세지를 보낸다.
      4. 3번의 프로세스 중 또한 번의 오류가 발생하였다면 다음인 Sub Bot(2)의 WebHook을 이용하여 메세지를 보낸다.
      5. 3번과 4번의 프로세스를 재귀함수로서 구현하여 마지막 Bot까지 동작을 실행한다.
      6. 5번 프로세스 까지 동작하였음에도 오류가 발생하였다면 로그를 남기며 Lambda를 종료한다.
반응형

'ETC' 카테고리의 다른 글

맥OS 파인더에 휴지통을 추가하기  (1) 2023.12.01
사내 담당 업무 기록 1  (0) 2023.08.17