みなさんこんにちは。ネコが好きなマネージドサービス部の塩野です。
2023年10月3日の発表で「Amazon EventBridge にてイベントルールでのワイルドカードフィルターのサポート」が発表されました。
マネージドサービスの情報をなどに連携して送信するケースや、何かのイベントをトリガーとして別のアクションを起こすケースは多いと思います。 弊社でもAmazon EventBridgeのルールを使用してイベントを送信していることから、どのような感じになるか試してみました。
Amazon EventBridge とは
おさらいになりますが、Amazon EventBridgeって何者だという所から話しを進めます。
以前は Amazon CloudWatch Events と呼ばれていた機能で、ドキュメントには「EventBridge は、イベントを使用してアプリケーションコンポーネント同士を接続するサーバーレスサービスです」と記載されています。簡単に言うなら何かのイベントをキーにして別のアプリケーションと連携できるマネージドサービスです。
Amazon EventBridge イベントバスについて
イベントルールを説明する前にイベントバスを理解しておく必要があります。イベントバスとはイベントを受信するルーターでイベントを1つ以上の送信先やターゲットに配信するためのバスです。イベントバスで扱えるイベントはAWSサービスから提供されるイベント以外にカスタムアプリケーションやSaaS(Software as a Service)サービスなどのイベントがあり、AWSサービスから提供されるイベントは default のイベントバスに転送されます。
検証用イベントルール作成
イベントルールは下記の流れで作成します。
1.デフォルトのイベントバスを開き、ルール作成をクリック
2.名前の欄に任意のルール名を入力する
3.ルールタイプはイベントパターンを持つルールを選択
4.イベントソースはAWS イベントまたは EventBridge パートナーイベントを選択
5.作成のメソッドでカスタムパターン (JSON エディタ)を選択しイベントパターン入力欄に任意の内容を入力する
※今回は動作テストを目的としていますので、下記のようなパターンで実験しました。
※ファイル名などをワイルドカードで指定する場合は、ドキュメントの通り"FileName": [ { "wildcard": "dir/*.png" } ]
のような形で記載ください。
{ "source": ["aws.ec2"], "detail.eventName": [{ "wildcard": "Reboot*" }] }
docs.aws.amazon.com
6.ターゲットを選択で送信先ターゲットを指定する
※今回は動作テストを目的としていますので、SNS経由でメール送信する設定にしています
※SNS経由でメール送信する設定については割愛させていただきます
7.その他の設定はデフォルトのままルールの作成をクリックして設定を保存する
これでテスト用のEventBridgeのルールの作成が完成しました。後は検証用のEC2を再起動すればイベントが通知されるはずです。
結果
海苔だらけになってしまい恐縮ですが、赤枠のところが今回のワイルドカードで指定した部分です。
総評
検証とはいえ、あまりワイルドカードに指定しないような箇所でもうまく動作できましたので、ドキュメントに記載されている例で使われているファイル名のワイルドカードやIPアドレス、サービス名、メッセージ本文など使いどころは多い機能ではないかと思います。
どなたかのお役に立てれば幸いです。