「AWS lambdaが実行中に失敗したら通知させたい!」
なんてことを思っているそこのエンジニアのあなた。
この記事を読めばあっという間に設定することができます。
ということで、今回は新しく追加された AWSchat botを利用して、slackに通知させてみたいと思います。
slackを用意する
ワークスペースがない場合は追加しましょう。
既存のワークスペースがある方は問題ないです。
全体の流れのイメージ
構成はこんな感じですね。
lambdaのエラーをcloud watchで検知。
SNSに投げて、それをchat botが拾って指定したチャンネルで通知。
Amazon SNSでトピックを作成
まずはSNSのトピックを作成します。
適当にわかる名前であとはデフォルトのままでOKです。
暗号化については暗号化するとうまく動作しなかった?ので、 暗号化の無効化のままでやってます。
chat botを作成、連携
chat botを利用開始します。
AWS サービスからchat botを探すか、ググりましょう。
開始するとチャットクライアントを選択するので、slackを選びます。
するといつもの権限リクエストの画面に。
ワークスペースを選んで連携します。
たったこれだけでOK!
chat botの設定をする
chat botで設定をします。
下記、項目ごとに説明します。
Amazon CloudWatch Logs にログを発行する
Amazon CloudWatch Logs にログを発行する
これにチェック入れるとlogを残してくれるみたいです。
チャンネル
slackの通知するチャンネルを選びます。
privateでも可能。
privateだと、
/invite @aws
のコマンドで招待しておく必要がありそうです。
アクセス許可
既存のIAMは基本的にないと思うので、テンプレートを使用してIAMロールの作成で良いと思います。
ようは、「通知のアクセス許可」がついていればOKです。
通知
ここで先ほど作成したSNSトピックを選択します。
regionを選択すると、さっきつくったトピックが選べるはずです。
SNSトピックでサブスクリプションを選ぶ
この後に、再度トピックの設定画面へ。
するとchat botの設定をするといったflashが上部にでているのでクリック。
上記のように設定されていればOKだと思います。
cloud wathのアラーム設定
アラームの設定を追加していきます。
メトリクスは検知するスコープみたいなものです。 何の状態を検知するの?って感じ。
今回はlambdaなのでこれを選びます。
lambda -> 関数別 -> 関数名(メトリクス名:エラー)
で選ぶとよいです。
1つ選択したらメトリクスの選択をクリック。
条件はエラーが一個でも起きたら、というふうに設定してみました。
呼び出し回数でも設定できますね。
異常な回数のlambdaが発火されたら通知としておくと、請求が怖くないかもです。
で、最後に通知先の設定です。
さきほど作ったSNSがあるので、既存のSNSトピックの選択から、名前が候補にでてくるので選びます。
これで準備OKです!
確認する
lambdaの関数でテストなどでエラーを発生させると無事、slackに通知させることができます。
チェックができればあとはそのままで問題なしです。
参考
http://blog.serverworks.co.jp/tech/2020/04/26/aws-chatbot-now-generally-available/