EventBridge にカスタムイベントを発行した場合、システム全体でそれらのイベントをクエリ、フィルター、トレースする必要が生じることがあります。イベント分析では、キーと値のペアによる取得、GUI を用いた分析、イベントトレース、およびイベントソーストレースを活用して、カスタムイベントバス内のすべてのイベントに対して構造化されたクエリを実行できます。
イベント分析を有効化するには、カスタムイベントにスキーマをバインドします。このスキーマは、イベントの構造を定義し、構造化クエリおよび可視化のためにイベントフィールドを分析プラットフォームにマップします。
仕組み
OpenAPI 3.0 仕様に準拠したイベントスキーマのみを作成およびクエリできます。このスキーマは、イベントペイロード内のフィールドを定義することで、分析プラットフォームがそれらをインデックス化およびクエリできるようにします。
カスタムイベントへのスキーマのバインドには、以下の 2 つの方法があります:
| 方法 | 動作の仕組み | 使用タイミング |
|---|---|---|
| ルールマッピング | EventBridge コンソールのイベントルールを通じて、スキーマ URI をバインドします。 | コンソールからコード不要で設定したい場合。 |
| プッシュマッピング | dataschema パラメーターを PutEvents API 呼び出しに設定し、イベント発行時にスキーマ URI をバインドします。 | イベントをプログラムによって発行し、コード内でスキーマのバインドを制御したい場合。 |

前提条件
開始する前に、以下の条件を満たしていることを確認してください。
必要な権限が RAM ユーザーに付与された、有効化済みの EventBridge サービス。詳細については、「EventBridge の有効化および RAM ユーザーへの権限付与」をご参照ください。
AccessKey ペアを持つ Alibaba Cloud アカウント。AccessKey ペアは、セキュリティ管理 ページから作成または確認できます。
カスタムスキーマの作成
EventBridge コンソール にログインします。左側のナビゲーションウィンドウで、スキーマ をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
スキーマ ページで、カスタムスキーマグループ タブをクリックし、スキーマの作成 をクリックします。
スキーマの作成 パネルで、以下のパラメーターを設定し、OK をクリックします。
パラメーター 説明 例 スキーマ ID スキーマの名前。 test スキーマの説明 スキーマの説明。 demo スキーマの内容 直接作成:OpenAPI 3.0 仕様に準拠した JSON テキストを自動生成します。JSON に基づく作成:提供した JSON サンプルからスキーマを生成します。 直接作成 互換性タイプ スキーマのバージョン間で互換性チェックを有効化するかどうか。デフォルト:互換性チェックなし。 互換性チェックなし
スキーマが作成された後、カスタムスキーマグループ タブ(スキーマ ページ内)で、URI、バージョン、フォーマット、および互換性タイプを確認してください。

スキーマのイベントへのマッピング
以下のいずれかの方法を使用して、カスタムイベントにスキーマをバインドします。
ルールマッピング
イベントバス ページで、管理対象のカスタムイベントバスをクリックします。左側のナビゲーションウィンドウで、イベントルール をクリックし、ルールの作成 をクリックします。
ルールの作成 パネルで、以下の手順を完了します:
基本情報の設定 ステップで、名前 および 説明 パラメーターを設定し、次のステップ をクリックします。
イベントパターンの設定 ステップで、クエリ対象のカスタムイベントソースを指定し、次のステップ をクリックします。
ターゲットの設定 ステップで、サービスタイプ を イベント分析 に、マッピング方法 を ルールマッピング に設定します。また、先の手順で作成したスキーマと同じ グループ名、スキーマ ID、および スキーマバージョン を選択します。
作成 をクリックします。
プッシュマッピング
SDK コードに、先の手順で取得した
dataschemaパラメーターおよびスキーマ URI を追加し、イベントをプッシュします。以下の Java の例では、一連の処理の流れを示しています。import com.aliyun.eventbridge.EventBridge; import com.aliyun.eventbridge.EventBridgeClient; import com.aliyun.eventbridge.models.CloudEvent; import com.aliyun.eventbridge.models.Config; import com.aliyun.eventbridge.models.PutEventsResponse; import com.aliyun.eventbridge.util.EventBuilder; import com.google.gson.Gson; import java.net.URI; import java.util.ArrayList; import java.util.Date; import java.util.List; public class PutEventsSample { private EventBridge eventBridgeClient; public PutEventsSample() { Config authConfig = new Config(); // 環境変数から AccessKey ID を取得します。 authConfig.accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); // 環境変数から AccessKey Secret を取得します。 authConfig.accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); // エンドポイントを指定します。リージョンおよびエンドポイントの詳細については、リージョンとエンドポイントをご参照ください。 authConfig.endpoint = "<your-endpoint>"; eventBridgeClient = new EventBridgeClient(authConfig); } public void putEventsSample() { List<CloudEvent> cloudEventList = new ArrayList<>(); CloudEvent cloudEvent = EventBuilder.builder() .withId("a5074581-7e74-4e4c-868f-47e7afdf****") .withSource(URI.create("acs.oss")) .withType("oss:ObjectCreated:PostObject") .withSubject("acs:oss:cn-hangzhou:{yourAccountId}:xls-papk/game_apk/123.jpg") .withTime(new Date()) .withJsonStringData("{ \"E-Mail\": \"${email}\" }") .withAliyunEventBus("demo-bus") .build(); // 「カスタムスキーマの作成」手順で取得したスキーマ URI を設定します。 cloudEvent.setDataschema("<schema-uri>"); cloudEventList.add(cloudEvent); PutEventsResponse putEventsResponse = eventBridgeClient.putEvents(cloudEventList); System.out.println(new Gson().toJson(putEventsResponse)); } public static void main(String[] args) { PutEventsSample sample = new PutEventsSample(); try { sample.putEventsSample(); } catch (Throwable e) { e.printStackTrace(); } } }以下のプレースホルダーを実際の値に置き換えてください。
プレースホルダー 説明 例 <your-endpoint>ご利用のリージョン向けの EventBridge エンドポイント - <schema-uri>先の手順で取得したスキーマ URI - イベントバス ページで、管理対象のカスタムイベントバスをクリックします。左側のナビゲーションウィンドウで、イベントルール をクリックし、ルールの作成 をクリックします。
ルールの作成 パネルで、以下の手順を完了します:
基本情報の設定 ステップで、名前 および 説明 パラメーターを設定し、次のステップ をクリックします。
イベントパターンの設定 ステップで、クエリ対象のカスタムイベントソースを指定し、次のステップ をクリックします。
ターゲットの設定 ステップで、サービスタイプ を イベント分析 に、マッピング方法 を プッシュマッピング に設定します。
作成 をクリックします。
イベントのクエリ
EventBridge コンソール にログインします。左側のナビゲーションウィンドウで、イベントセンター > イベント分析 を選択します。
上部のナビゲーションバーで、リージョンを選択します。
イベント分析 ページで、クエリパラメーターを設定し、クエリ をクリックします。

必須パラメーター
| パラメーター | 説明 |
|---|---|
| イベントバス | クエリ対象のイベントバス名。 |
| スキーマ | クエリ対象のイベントタイプのスキーマ。 Alibaba Cloud サービスのイベントタイプの詳細については、「Alibaba Cloud 公式イベントソース」をご参照ください。 |
オプションパラメーター
| パラメーター | 説明 |
|---|---|
| キーと値の一致 | キーと値のペアでイベントをフィルターします。以下の演算子を 1 つ以上使用して条件を指定します。キーと値の一致 パラメーターの右側にある AND または OR を選択して、複数のキーと値のペア間の関係を指定します。 |
| 集計関数 | データビジュアライゼーション(大画面表示)用の集計関数。各関数は折れ線グラフに対応します。チャート形式の結果を取得する場合は必須です。 |
| グループ化基準 | イベントをグループ化するフィールド。1 つ以上のイベントプロパティフィールドを入力します。 |
| 並び順 | 集計関数の結果に基づいて、昇順または降順でイベントを並べ替えるフィールド。1 つ以上のフィールドを入力できます。 |
| 時間範囲 | クエリの時間範囲。 |
| イベント数 | 返されるイベントの最大数。 |
キーと値の一致演算子
| 演算子 | 動作 |
|---|---|
= | キーが値と等しいイベントに一致します。 |
!= | キーが値と等しくないイベントに一致します。 |
exists | キーが存在するイベント(値は問わない)に一致します。 |
does-not-exist | キーが存在しないイベントに一致します。 |
結果の分析
イベント分析 ページの 集計関数 タブおよび テーブル タブで、クエリ結果を表示します。
結果内のイベントパラメーターの詳細については、「システムイベントバスにおけるイベントの分析」をご参照ください。