0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CloudWatchLogsの特定の文字列を含むログをSlackに転送する -前編-

Last updated at Posted at 2021-05-10

#slack apiにアクセスしてアプリを作成
botの作成の仕方やslackへのメッセージ投稿の仕方は以下の記事で紹介しています。

#Pythonのコードのディレクトリ構造

ディレクトリ構造は以下のようになっています

ディレクトリ構造
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 ./ 

#lambda_function.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))

こちらの記事を参考にさせて頂きました。

#postslack.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にアップロード

image.png

#続き
ここまで出来れば残りの作業はもう少しです。
CloudWatchLogsの特定の文字列を含むログをSlackに転送する-後編-に続きます。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?