CloudWatchLogs의 특정 문자열이 포함된 로그를 Slack으로 전송

slack api로 이동하여 앱 만들기



bot를 작성하는 방법이나 slack에의 메시지 투고의 방법은 이하의 기사에서 소개하고 있습니다.

파이썬 코드의 디렉토리 구조



디렉토리 구조는 다음과 같습니다.

디렉토리 구조
sendLogToSlack
├── lambda_function.py
├── postslack.py
└── slack_sdk

slack_sdk 설치



slack_sdk는 lambda의 표준 모듈이 아니므로,
pip로 설치한 다음 zip으로 패키징해야 합니다.

slack_sdk를 패키지에 포함
mkdir sendLogToSlack
cd sendLogToSlack
pip install slack_sdk -t ./ 

ぁmb다 _훙 c치온. py



lambda_function.py
import zlib
import base64
import postslack
import json

def lambda_handler(event, context):
    data = zlib.decompress(base64.b64decode(event['awslogs']['data']), 16+zlib.MAX_WBITS)
    data_json = json.loads(data)
    log_json = json.loads(json.dumps(data_json["logEvents"][0], ensure_ascii=False))
    postslack.SendSlackMessage(str(log_json))

이쪽의 기사를 참고로 했습니다.

Postsack. py



postslack.py
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError

def SendSlackMessage(message):
    client = WebClient(token='your_token') 
    response=client.chat_postMessage(channel='your_channel', text=message)

slack_sdk의 사용법에 관해서는 이 기사에서 소개하고 있습니다.

패키징



lambda에 업로드하기 위해 zip 명령으로 패키지화합니다.

sendLogToSlack
zip -r sendslack *

lambda에 업로드





계속



여기까지 할 수 있으면 나머지 작업은 좀 더입니다.
CloudWatchLogs의 특정 문자열이 포함된 로그를 Slack으로 전송 - 후편 - 에 계속합니다.

좋은 웹페이지 즐겨찾기