Devops Skill Up/AWS

[AWS] AWS Chatbot을 사용하여 Slack 메시지 전송하기

불여우의 길 2024. 4. 15. 14:33

AWS Chatbot 클라이언트 생성

 

1. AWS 콘솔 - AWS Chatbot - 새 클라이언트 구성 - slack 선택 후 구성 - 슬랙 워크스페이스 선택

2. notification 구성 이름 설정 및 채널 선택

3. 권한 설정

role

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "cloudwatch:Describe*",
                "cloudwatch:Get*",
                "cloudwatch:List*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

 

 


CodePipeline 알림 규칙 생성

CodePipeline 이 실행될 경 slack 메시지가 오도록 설정한 아키텍쳐의 경우 다음과 같다

aws charbot을 생성할 경우 chatbot과 연동되는 SNS 가 자동적으로 생성이되고 codepipeline 알림 규칙의 대상으로 해당 sns을 선택해서 메시지를 전달하는 식이다

 

이 SNS에 다른 리소스들을 연결해서 Slack을 보낼 수 있다.

 

1. codepipeline 선택 - 알림 - 알림 규칙 생성

2. 이름, 이벤트 생성

  • 알림이름 설정
  • 이벤트 (필요에 따라 이벤트 추가, 삭제 가능)
    • Action execution : Failed
    • Stage execution : none
    • Pipeline execution : Failed, Started, Successed
    • Manual approval : none

 

3. 대상

  •  AWS Chatbot (Slack) / 생성한 chatbot 클라이언트 arn 선택

 

전송된 Slack 메시지

 


 

CloudWath 경보 알림 규칙 생성

1. CloudWatch 경보 생성 혹은 기본 경보 조회

2. 해당 경보 편집 - 작업구성 - 알림

  • 기존 SNS 주제 선택
  • 다음으로 알림 전송 : chatbot과 연결된 sns 선택

 

☄️Trouble Shooting

Codepipeline 과 CloudWatch 경보에 대한 알림을 동일한 SNS 를 사용한 경우 둘 중 하나의 알림이 정상적으로 전송되지 않는 경우가 발생하였다

 

그래서 해당 slack 챗봇과 연결된 SNS 하나를 수동으로 생성하여 각각 다른 SNS 를 사용하지만 동일한 chatbot을 사용하도록 만들어주었다.

 

전송된 Slack 메시지