Recent Comments
변군이글루
[AWS] CloudWatch slack 메시지 포맷 편집 본문
slack 메시지 포맷 편집
slack 메시지
lambda function
import boto3
import json
import logging
import os
from base64 import b64decode
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
# The Slack channel to send a message to stored in the slackChannel environment variable
SLACK_CHANNEL = os.environ['slackChannel']
HOOK_URL = os.environ['hookUrl']
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info("Event: " + str(event))
message = json.loads(event['Records'][0]['Sns']['Message'])
logger.info("Message: " + str(message))
alarm_name = message['AlarmName']
#old_state = message['OldStateValue']
new_state = message['NewStateValue']
reason = message['NewStateReason']
color = '00e200'
username = 'CloudWatch'
if new_state == 'ALARM':
color = '#ff0000'
slack_message = {
'channel': SLACK_CHANNEL,
'username': username,
'pretext': "%s: %s" % (new_state, alarm_name),
'color': color,
'text': "%s state is now %s: %s" % (alarm_name, new_state, reason)
}
req = Request(HOOK_URL, json.dumps(slack_message).encode('utf-8'))
try:
response = urlopen(req)
response.read()
logger.info("Message posted to %s", slack_message['channel'])
except HTTPError as e:
logger.error("Request failed: %d %s", e.code, e.reason)
except URLError as e:
logger.error("Server connection failed: %s", e.reason)
'* 퍼블릭 클라우드' 카테고리의 다른 글
[AWS] rds mysql(mariadb) 데이터베이스 마이그레이션 (0) | 2020.10.20 |
---|---|
[AWS] ELB(ALB) 로그를 S3에 저장하기 (0) | 2020.10.13 |
[AWS] CloudWatch slack 메시지 포맷 편집 (0) | 2020.10.11 |
[AWS] RDS(MySQL) 읽기 전용 복제본 디비 생성 (0) | 2020.10.08 |
[AWS] cloudwatch 메시지를 slack으로 받기 -1 (0) | 2020.10.07 |
[AWS] AWS RDS 스냅샷(DB)을 S3로 내보내기 (0) | 2020.09.22 |
- Tag
- AWS, boto3, cloudwatch, lambda, slack, slack_message
0 Comments