[新機能] Amazon EventBridgeにサンドボックス機能が追加されました

Amazon EventBridgeの新機能である"サンドボックス"を紹介します。また、EventBridgeルールの作成ウィザードも新しくなったので併せて紹介します。
2022.03.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

朝起きたらAmazon EventBridgeに新機能が来ていた

こんにちは、のんピ(@non____97)です。

珍しく早起きしてAWSマネージメントコンソールツアーをしていると、Amazon EventBridgeに新機能が来ているじゃありませんか。

その名も 「サンドボックス」 です。

見つけた時は思わず興奮してしまいました。

名前から想像するに、作成したイベントパターンにイベントが一致するかどうか検証するような機能でしょうか。

2022/3/4 9:30時点でWhat’s Newにも上がっていなかったので、触りながらどんな機能なのかを確認していきます。

2022/3/12 追記 3/12にWhat’s Newに掲載されました。3/4 10:30ごろにマネージメントコンソールをリロードしたら消えたので、最初に発見した時はテスト中だったのかもしれません。

いきなりまとめ

  • サンドボックスは、作成したイベントパターンにイベントが一致するかどうか検証する機能
  • 作成したイベントパターンからEventBridgeルールを作成することも可能
  • EventBridgeルールや、入力トランスフォーマー(Input Transformer)の画面も変更されていた
    • EventBridgeルールのメトリクスをCloudWatchに遷移せずに確認できる

確認してみた

イベントパターン

マネージメントコンソールでサンドボックスをクリックすると、以下のような画面が表示されました。

EventBridgeサンドボックス

イベントパターンターゲット入力トランスフォーマーと2つタブがありますが、まずはイベントパターンの方から確認していきます。

イベントパターンは、作成したイベントパターンにイベントが一致するかどうか検証する機能のようですね。試しに触ってみます。

イベントソースは以下の3パターンあります。

  • すべてのイベント
  • AWSのサービス
  • その他

イベントソースの選択によって、イベントパターンのエディタが変化します。

すべてのイベントを選択した場合は、イベントパターンは固定です。編集することはできません。

{
  "account": ["<自分のAWSアカウントID>"]
}

AWSのサービスを選択した場合は、イベントソースとするAWSのサービスやイベントタイプを選択・入力することで、イベントパターンのエディタが変化します。

イベントソースにAWSのサービスを選択した場合

その他を選択した場合は、JSONエディタが開き、自分で一からイベントパターンを編集することができます。

イベントソースにその他を選択した場合

また、一致するパターンを選択のプルダウンで選択した値をJSONエディタに挿入することができます。

一致するパターンを選択の一覧

プレフィックスマッチングのサンプルを挿入

用意されている全てのパターンを挿入すると以下のようになりました。イベントパターンを設計する際に、都度公式ドキュメントを見に行かなくても、コンソールで支援してくれるのは非常にありがたいですね。

{
  "source": ["aws.states"],
  "detail-type": ["Step Functions Execution Status Change"],
  "detail": {
    "status": ["SUCCEEDED", "FAILED", "TIMED_OUT"],
    // プレフィックスマッチング
    "$STRING": [{
      "prefix": "$VALUE"
    }],
    // 「以外」マッチング
    "$STRING": [{
      "anything-but": ["$VALUE"]
    }],
    // 数値マッチング
    "$STRING": [{
      "numeric": ["$OPERATION", "$VALUE"]
    }],
    // IPアドレスマッチング
    "$STRING": [{
      "cidr": "$VALUE"
    }],
    // 存在マッチング
    "$STRING": [{
      "exists": "$VALUE"
    }],
    //各パターンの複数のマッチング
    "$STRING": [{
      "numeric": ["$VALUE"]
    }],
    "$STRING": [{
      "anything-but": ["$VALUE"]
    }],
    "$STRING": [{
      "cidr": "$VALUE"
    }]
  }
}

なお、AWSのサービスを選択した際にパターンを編集をクリックすることでも、JSONエディタでイベントパターンを編集することができます。

設計したイベントパターンとサンプルイベントが一致するかどうか確認する際は、テストパターンをクリックすることで行えます。

設計したイベントパターンとサンプルイベントが一致しない場合は、サンプルイベントがイベントパターンと一致しませんでしたと表示されます。

サンプルイベントがイベントパターンと一致しませんでした

設計したイベントパターンとサンプルイベントが一致する場合は、イベントパターンに一致したサンプルイベントと表示されます。

イベントパターンに一致したサンプルイベント

イベントソースによっては複数のサンプルがあるので非常に助かります。

Step Functions Execution Status Changeのサンプルイベント一覧

サンプルイベントとして指定できるJSONはAWSが用意したものだけではなく、自分で入力することも可能です。

サンプルイベントを入力

設計したイベントパターンからEventBridgeルールを作成することも簡単にできます。

画面下部にあるパターンを持つルールを作成というボタンをクリックします。こちらをクリックすることでEventBridgeルール作成のウィザードに遷移します。

パターンを持つルールを作成

Amazon_EventBridgeルールを作成_ルールの詳細を定義

EventBridgeルール作成の動線があるのは非常に便利ですね。

ところで皆さんお気づきでしょうか。「EventBridgeルール作成の画面が新しくなっていることに

どうやら機能追加のタイミングで新しくなったようです。

このまま新しいEventBridgeルール作成画面を紹介します。

イベントパターンを構築」のステップに進むと、イベントパターンの設計を行うことができます。サンドボックスから遷移した場合は、サンドボックスで設計したイベントパターンがすでに入力されています。

Amazon_EventBridgeルールを作成_イベントパターンを構築

ちなみに、前の画面でルールタイプスケジュールを選択した場合は、「スケジュールを定義」というステップに遷移します。

見てください。この素晴らしいCron式の設定画面を。「Cronの書き方どうだっけな」と悩む必要はもうありません。

Amazon_EventBridgeルールを作成_スケジュールを定義

EventBridgeルールのCron式の詳細な仕様は以下AWS公式ドキュメントからご確認ください。

ターゲットを選択」のステップに進むと、ターゲットの選択及び、再施行ポリシーやデッドレターキューなどの設定を行うことができます。

Amazon_EventBridgeルールを作成_ターゲットを選択

タグを設定」のステップに進むと、EventBridgeルールのタグの設定を行うことができます。

Amazon_EventBridgeルールを作成_タグを設定

レビューと作成」のステップに進むと、今までのステップで設定したパラメーターを確認することができます。なんだかスッキリしてカッコいいですね。

Amazon_EventBridgeルールを作成_レビューと作成

ルールの作成をクリックし、正常にEventBridgeルールの作成が完了すると、EventBridgeルール一覧に遷移します。

EventBridgeルール一覧

作成したEventBridgeルールをクリックすると、EventBridgeルールの詳細を確認できます。

EventBridgeルールの詳細

ところで皆さんお気づきでしょうか(2回目)。「EventBridgeルールのメトリクスの確認ができることに

わざわざCloudWatchメトリクスから確認しなくても良いんです!! これはアツい。「あのイベントでちゃんとトリガーしたかな」という時に非常に役立ちますね。(検証中は30分程度待っても表示されなかったです。新機能なのでご愛嬌。)

EventBridgeルールのモニタリング

ターゲット入力トランスフォーマー

続いて、ターゲット入力トランスフォーマーのサンドボックスを紹介をします。

サンドボックスのターゲット入力トランスフォーマータブをクリックすると、入力トランスフォーマー(Input Transformer)の検証画面が表示されます。個人的には「入力パス、テンプレート、および出力の例」が非常にありがたいです。

ターゲット入力トランスフォーマー

こちらの例を参考にしながら、入力パス、テンプレートを設計することができます。

入力パスとテンプレートの設計後は出力を生成をクリックすることで、サンプルイベントで指定したイベントを元にどのような値が出力されるか確認することができます。

ターゲット入力トランスフォーマーの入力確認

Amazon EventBridgeがさらに使いやすく

Amazon EventBridgeの新機能であるサンドボックスと、新しくなったEventBridgeルールの作成ウィザードを紹介しました。

実際に使ってみて、思わず「これは便利だ...」と何度も唸ってしまいました。

特に、今までの入力トランスフォーマー(Input Transformer)は実際に動かしてみないと、どんな風に出力されるのか分からなかったので、サンドボックス機能はかなりありがたいです。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!