[アップデート]Amazon EventBridgeルール作成をよりシンプルにする機能が追加されました

EventBridgeイベントバスとルールからCloudFormationテンプレート生成&スキーマからイベントパターンを生成できるようになったよ
2022.11.28

みなさんこんにちは、杉金です。
Amazon EventBridgeのルール作成をよりシンプルにする機能が導入されました。

どのような機能か

以下の2つが新機能として追加されました。

  • ルールやイベントバスからCloudFormationテンプレートを作成できるようになった
  • スキーマからイベントパターンを生成できるようになった

どのような感じで作成できるのか試してみましょう。

試してみた

CloudFormationテンプレート作成

イベントバスとルールそれぞれでCloudFormationテンプレートが作成できます。

イベントバスの場合

Amazon EventBridgeコンソールの「イベントバス」から、対象のイベントバスを選んで「アクション」→「CloudFormationテンプレート」を選択すると、JSONかYAMLかを選べます。

試しにYAMLを選んでみるとポップアップ画面が表示されます。左下に「このEventBusでルールを含める」が有効だと対象のイベントバスに紐づくルールもテンプレートとしてエクスポートされます。チェックを無効にするとイベントバスの設定のみエクスポートされます。YAMLではなくJSONを選んでも同様です。

イベントバスに対するアクセス許可の設定として、リソースベースのポリシーが定義できますが、この定義した内容もCloudFormationテンプレートに含まれます。

ルールの場合

Amazon EventBridgeコンソールの「ルール」から、対象のルールを選んで「CloudFormationテンプレート」を選択すると、JSONかYAMLかを選べます。

今度はJSONを選んでみます。コピーもしくはダウンロードが選択できます。YAMLを選んでも機能的な差はありません。

注意事項

注意事項もありますので利用される際は一読ください。

スキーマからイベントパターン生成

スキーマの検出はイベントバス単位で設定できます。Amazon EventBridgeコンソールの「スキーマ」→「検出されたスキーマレジストリ」タブから検出されたスキーマレジストリを確認できます。未設定の場合は以下のように何も表示されません。

イベントバスの一覧からスキーマの検出状態を確認できます。検出が有効になってない場合はスキーマの検出が「Not Initiated」と表示されます。

イベントバスを選び、アクションから「検出を開始する」を選択します。

設定後、状態が「Started」に変わります。

しばらくすると対象イベントバスのルールにマネージドルール(タイプが管理となっているもの)が追加されます。このマネージドルールがスキーマの検出を行うようです。

ついでにマネージドルールのイベントパターンも見てみましょう。なるほどなるほど、完全に理解しました。

検出することを試すためにテストイベントを発行してみます。イベントバスの画面右上からテストイベントを送信できます。

テストイベントの詳細を設定します。スキーマで検出されるよう対象のイベントバスを選択し、あとは適当に入力します。

下にスクロールして「送信」を押下します。

しばらくすると、検出されたスキーマレジストリにスキーマが検出されたことが分かります。

やっと本題に入ります。検出されたスキーマを利用してイベントルールを作成します。
イベントルールを作成する画面で「Use schema」を選択し、スキーマレジストリを選択します。

リストボックスから先ほど検出されたスキーマレジストリを選びます。するとModelsが表示されますので、トリガーとする値を入力します。

なんか面白いキーワードないだろうか、と小一時間ほど考えましたが思いつかないので適当に入力します。

Relationshipで選べる項目については以下のページをご覧ください。

入力後、すぐ下にある「Generate event pattern in JSON」を選ぶとイベントパターンが出力されます。これがスキーマを使ったイベントパターン作成です。本記事では割愛しますが前述したテストイベントを再度発行してルールが機能することをテストするとよいでしょう。

イベントバスに送信されるイベントをもとにスキーマが作られ、作成されたスキーマから簡単にイベントパターンが作れるというわけです。

気になる料金

スキーマの検出機能には料金が発生しますが無料枠があります。

スキーマレジストリのスキーマの検出機能には、無料利用枠が含まれています。1 か月あたり 500 万件の取り込まれたイベントが無料です。

大量にイベントが発生しなければ気にしなくて良いレベルかと思います。

最後に

サンドボックス機能などEventBridgeルールを作りやすくなる機能が徐々に増えてきており嬉しいです。遠い昔はターゲットをSNSにしてイベントの中身を丸ごと送信してイベント構造を解析しながら試行錯誤していたのでだいぶ楽になりつつあるように思います。CloudFormationテンプレート作成機能もちょうど欲しかった機能です。今後のアップデートにも期待ですね!

参考資料