SNSのイベント通知メールをEventBridgeで日本語にしてみた

SNSのイベント通知メールをEventBridgeで日本語にしてみた

Clock Icon2024.09.26

はじめに

こんにちは、 岩崎 です。

以前にS3のイベント通知をSNSを使用してEメールに通知を送信してみました。
しかし、メールを確認してみると本文は全て英語で、何のイベントの通知が来たのか、パッと見て判断できませんでした。

https://dev.classmethod.jp/articles/S3-SNS-notification/

本記事では、EventBridgeを使用して、日本語で任意のメールで通知するようにします。

やってみた

S3バケットの作成と設定

はじめにS3バケットを作成します。
作成後、プロパティのAmazon EventBridgeの編集をクリックします。
image.png


このバケット内のすべてのイベントについて Amazon EventBridge に通知を送信するをオンにし、変更を保存します。
image.png

SNSの作成と設定

SNSトピックを作成します。 タイプを「スタンダード」にします。 名前を入力します。
image.png

その他はすべてデフォルトのまま、トピックを作成します。


作成されたトピックを選択し、サブスクリプションを作成します。 トピックARNで先ほど作成したトピックを選択します。 プロトコルはEメールを選択し、通知したいEメールアドレスを入力します。

スクリーンショット 2024-09-25 14.55.48.png

設定が終わったら、サブスクリプションの作成します。


EventBridge の作成と設定

EventBridge のルールを作成をクリックします。 名前を入力し、ルールタイプを「イベントパターン」を選択します。
image.png


イベントパターンのイベントソースを「AWSサービス」にします。 AWS のサービスを「S3」にします。
イベントタイプを「Amazon S3 イベント通知」にします。
image.png

イベントタイプの下にイベントタイプの仕様があるので、「特定のイベント」と「特定のバケット」にします。

特定のイベントは、今回「Object Created」と「Object Deleted」を選択します。 特定のバケットには先ほど作成したバケット名を入力します。 設定すると画像のようになります。

image.png


次にターゲットの選択です

ターゲットタイプをAWSのサービス
ターゲットの選択でSNSトピック、トピックは先ほど作成したトピック名を選択します。
image.png

追加の設定を行います
ターゲット入力設定を「入力トランスフォーマー
入力トランスフォーマーを設定をクリックします。
image.png

下にスクロールすると、ターゲット入力トランスフォーマーがあるので、下記を入力します。

{"bucketName":"$.detail.bucket.name","eventName":"$.detail-type","objectKey":"$.detail.object.key"}

テンプレートには下記を入力します。

"S3オブジェクト通知"
"<eventName>が発生しました"
"バケット: <bucketName>"
"オブジェクト: <objectKey>"

image.png

入力ができたら、確認をクリックします。

その他はデフォルトのままで良いので、次へをクリックしルールを作成します。


確認してみる

実際にバケットにファイルをアップロードしてみます。
無事メールが届きました。
image.png

削除した通知もしっかりと届きました。
image.png

SNSのみの通知メールからかなり見やすくなったかと思います。

まとめ

本記事では、Amazon S3のイベント通知を従来のSNSを利用した英語のメール通知から、Amazon EventBridgeを活用して日本語でカスタマイズされたメール通知に改善する方法を紹介しました。

EventBridgeと入力トランスフォーマーを組み合わせることで、S3のイベント通知をより見やすく、理解しやすい日本語のメール形式で受け取ることが可能となりました。 これにより、通知内容の把握が容易になり、運用効率の向上が期待できます。

参考になりましたら幸いです。

参考資料

https://dev.classmethod.jp/articles/lambda-trigger-eventbridge-s3/

https://willpride.co.jp/2022/12/30/aws-eventbridge-と-amazon-snsを使用して、ec2インスタンスの停止をeメ/

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.