Connpass 이벤트를 Slack 통지하는 툴을 만들어 Terraform화해 보았다

Connpass의 연구회 정보를 Slack 통지하는 툴(python)을 만들어 terraform에서 배포 자동화해 보았습니다.
물건은 여기 → htps : // 기주 b. 코 m / 이시 m0226 / 곤파 s S CK

몇 가지 매개 변수를 설정하고 적용하기 만하면되므로 몇 분 안에 배포 할 수 있습니다.

만든 배경



평상시, 인프라 엔지니어로서 일하고 있어 프로그래밍하는 일이 별로 없기 때문에, 공부하고 싶다고 생각한 것이 계기입니다.
어차피라면 인프라 부분의 스킬을 곱하고 싶고, 클라우드상에서 인프라 코드화를 전제로 생각한 결과, 이런 것을 만들어 보았습니다.
이상한 부분이 있으면, 코멘트 주시면 다행입니다.

도구의 특징



싹둑 특징을 주면 다음과 같습니다.
  • 새로 추가된 이벤트 또는 업데이트된 이벤트만 알립니다. (알림 이벤트를 DB에서 관리합니다.)
  • 아래에 알려주는 이벤트를 필터링할 수 있습니다.
  • 키워드 (복수의 OR 지정이 가능, ※AND나 제외는 할 수 없습니다)
  • 개최 장소 (복수의 OR 지정이 가능, ※AND나 제외는 할 수 없습니다)
  • 한번, 통지한 이벤트에 갱신이 있었을 때의 통지 유무(디폴트는 「통지하지 않는다」)

  • 몇 분 안에 배포할 수 있습니다.
  • 저비용입니다. AWS 사용료가 부과되지만, 아마 수백엔/월도 가지 않을 정도입니다.

  • 처리 개요



    CloudwatchEvents에서 Lambda를 정기 실행하고, 취득한 Event를 DynamoDB에 흘립니다.
    그런 다음 DynamoDBStream에 의해 실행 된 Lambda에서 Slack WebhookURL을 두드려 Slack에 알립니다.
    ※Slack WebhookURL의 취득 방법은 Slack의 Webhook URL 획득 절차 가 참조가 됩니다.

    아키텍처 다이어그램





    실행까지의 흐름



    ※자세한 내용은 Readme을 참조해 주십시오.

  • 리포지토리 을 Clone합니다.
  • 파라미터(terraform/variables.tf)를 편집합니다. 여기에서 필터 조건이나 실행 시간, Slack 통지처 등을 설정합니다.
  • terraform 실행 및 배포 완료

  • 실행 시간을 맞으면 다음과 같은 슬랙 알림이 날아갑니다.


    참고 URL


  • Terraform으로 Lambda (Cron 시작) 구축
  • Python에서 DynamoDB 사용
  • Aws Lambda 로컬로 실행
  • Slack의 Webhook URL 획득 절차
  • 좋은 웹페이지 즐겨찾기