連載
» 2022年10月13日 05時00分 公開

「CloudWatch Logs」の「サブスクリプションフィルター」を使って、Slackにほぼリアルタイムでエラーを通知するAWSチートシート

AWS活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は「CloudWatch Logs」の「サブスクリプションフィルター」機能の利用方法と注意点を紹介する。

[櫻井智仁株式会社システムシェアード]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 「Amazon Web Services」(AWS)活用における便利な小技を簡潔に紹介する連載「AWSチートシート」。今回は、「CloudWatch Logs」の「サブスクリプションフィルター」機能の利用方法と注意点を紹介します。

「CloudWatch Logs」の「サブスクリプションフィルター」とは

 「サブスクリプションフィルター」はロググループ単位に設定するフィルター機能です。設定した特定文字列がログに出力された場合に、指定した後続処理(「AWS Lambda」「Amazon Kinesis」など)にログを転送します。

 構築時は、とあるエラーのみ処理の中で通知する仕組みにしていたが、運用していく上で「他のエラーも同様に通知したい」「一時的にこのエラーは通知してほしい」といったことも起こります。こういった場合、大抵は処理を改修して通知する箇所を増やす必要がありますが、エラーログさえ出力していれば、元の処理を改修せずに「サブスクリプションフィルター」を使って解決できます。

サービスの構築

 図1は本記事で作成するサービスの構成イメージです。

図1 サービスの構成イメージ

 今回は以下の手順でサービスを構築します。

  1. SlackへのIncoming Webhookの追加
  2. Slack通知するLambda関数の作成
  3. 監視対象となるLambda関数の作成
  4. ロググループへのサブスクリプションフィルターの設定
  5. 動作確認


1.SlackへのIncoming Webhookの追加

 こちらの記事の該当手順を参照してください。

2.Slack通知するLambda関数の作成

 AWSにログインし、Lambdaコンソールにアクセスして「関数の作成」をクリックします。

 関数の作成画面では、下表の項目通りに設定して「関数の作成」をクリックします。なお、記載のない項目についてはデフォルトの設定のままで問題ありません。

設定項目 設定値
オプション 一から作成
関数名 任意(例では「subscriptionFilterToSlack」)
ランタイム Python 3.9

図2 Slack通知するLambda関数の作成画面

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。