概要
この記事では、SNS と SQS と Lambda を使用したメッセージ基盤の続きとして、DLQ にキューが入ったら Slack へアラートを送信する方法を紹介します。
下図の赤枠の箇所がこの記事で紹介する範囲となります。

赤枠の箇所の処理の流れとしては以下の通りです。
- DLQ にキューが入る
- CloudWatch が ① を検知
- SNS にアラーム
- Lambda で slack へメッセージ送信
まずは環境を構築します。
SNS と SQS と Lambda を使用したメッセージ基盤で紹介した Terraform に以下を追加します。
terraform apply します。
現時点ではまだ ECR にイメージが存在しないため、Lambda の作成はエラーとなります。そのため、ECR にイメージを push した後で再度 terraform apply する必要があります。
Lambda 用 Docker イメージ作成
次に Lambda 用 Docker イメージを ECR へ push します。
lambda.py
slack へ CloudWatch アラームを送信するための Lambda 関数です。
requirements.txt
Dockerfile
Dockerfile は下記です。Docker イメージを作成して ECR へ push します。

備考
ECR へイメージを push したら、再度 terraform apply を実施して Lambda を作成します。
DLQ アラート発行
環境が整ったので、DLQ アラートが slack へ送信されるか試してみます。
SNS と SQS と Lambda を使用したメッセージ基盤#メッセージ発行を再度実行します。
DLQ にキューが入ると CloudWatch アラームがアラーム状態
に変化し、Slack へアラームの内容が送信されました。

まとめ
この記事では、SNS と SQS と Lambda を使用したメッセージ基盤の続きとして、DLQ にキューが入ったら Slack へアラートを送信する方法を紹介しました。DLQ にキューが入った際にアラートすることで、処理の失敗をリアルタイムで把握することが可能です。
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
