イベントルールを使用して、イベントをフィルタリングし、ApsaraMQ for RocketMQ にルーティングできます。このトピックでは、カスタムイベントを ApsaraMQ for RocketMQ にルーティングするための前提条件と手順について説明します。また、結果の検証方法についても説明します。
前提条件
手順 1:カスタムイベントソースを追加する
EventBridge コンソール にログオンします。左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。[イベントバス] ページで、管理するカスタムイベントバスの名前をクリックします。
左側のナビゲーションペインで、[イベントソース] をクリックし、次に [イベントソースの追加] をクリックします。
[カスタムイベントソースの追加] パネルで、[名前] パラメーターと [説明] パラメーターを設定し、[イベントプロバイダー] ドロップダウンリストから [カスタムアプリケーション] を選択し、[OK] をクリックします。
手順 2:イベントルールを作成する
イベントルールに設定するイベントターゲットは、イベントルールと同じリージョンに存在する必要があります。
EventBridge コンソール にログオンします。
左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
[イベントバス] ページで、管理するイベントバスの名前をクリックします。
左側のナビゲーションペインで、[イベントルール] をクリックします。
[イベントルール] ページで、[ルールの作成] をクリックします。
[ルールの作成] パネルで、次の操作を実行します。
基本情報の設定 手順で、名前 フィールドにルール名を入力し、[説明] フィールドにルールの説明を入力し、次へ をクリックします。
イベントパターンの設定 手順で、イベントソースタイプ パラメーターを カスタムイベントソース に設定し、イベントソース ドロップダウンリストから手順 1 で作成したカスタムイベントソースを選択し、パターン内容 コードエディターでイベントパターンを指定し、次へ をクリックします。
詳細については、「イベントパターン」をご参照ください。
イベントターゲットの設定 手順で、イベントターゲットを設定します。次に、作成 をクリックします。
説明イベントルールには最大 5 つのイベントターゲットを設定できます。
ApsaraMQ for RocketMQ をイベントターゲットとして選択した場合に設定できるパラメーターを次の表に示します。
パラメーター
説明
サービスタイプ
Message Queue for Apache RocketMQ をクリックします。
インスタンス ID
作成した Message Queue for Apache RocketMQ インスタンスの ID を選択します。
Topic
作成したトピックを選択します。
メッセージ本文
EventBridge は JSONPath を使用してイベントからデータを抽出し、イベントの指定された内容をイベントターゲットにルーティングします。例:
イベントの一部
$.data.bodyカスタムプロパティ
EventBridge は JSONPath を使用してイベントからデータを抽出し、イベントの指定されたプロパティをイベントターゲットにルーティングします。例:
テンプレート
パラメーター:
{ "userProperties":"$.data.userProperties", "msgId":"$.data.systemProperties.UNIQ_KEY" }テンプレート:
{ "EB_SYS_EMBED_OBJECT":"${userProperties}", "UNIQ_KEY":"${msgId}" }メッセージインデックス
EventBridge は JSONPath を使用してイベントからデータを抽出し、イベントの指定された内容をイベントターゲットにルーティングします。
イベントの一部
$.data.systemProperties.KEYSメッセージタグ
EventBridge は JSONPath を使用してイベントからデータを抽出し、イベントの指定された内容をイベントターゲットにルーティングします。
イベントの一部
$.data.systemProperties.TAGSEventBridge はさまざまなイベント変換方法を提供します。詳細については、「イベント変換」をご参照ください。以下に、各イベント変換方法の例を示します。
イベントの一部 の例
$.data.body固定値 の例
アラートに注意してください。パラメーター と テンプレート の例
パラメーター のサンプル:
{ "type":"$.type" }テンプレート のサンプル
イベントタイプは ${type} です。
手順 3:イベントを公開する
EventBridge コンソール にログオンします。左側のナビゲーションペインで、[イベントバス] をクリックします。
- 上部のナビゲーションバーで、リージョンを選択します。
- [イベントバス] ページで、イベントを公開するイベントバスを見つけ、イベントのパブリッシュ操作 列の をクリックします。説明 EventBridge コンソールでは、カスタムイベントバスにのみイベントを公開できます。
- [カスタムイベントバスへのイベントの公開] パネルで、カスタムイベントソース ドロップダウンリストからカスタムイベントソースを選択し、イベント本体 コードエディターにイベントの内容を入力し、[OK] をクリックします。イベントパラメーターの詳細については、「概要」をご参照ください。
結果の検証
ApsaraMQ for RocketMQ コンソールで、イベントが受信されたかどうかを確認できます。
ApsaraMQ for RocketMQ コンソール にログオンします。
左側のナビゲーションペインで、インスタンスリスト をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。
インスタンスリスト ページで、必要なインスタンスを見つけ、[アクション] 列で を選択します。
メッセージ検索 ページで、トピックでクエリ[クエリ方法] ドロップダウンリストから 時間範囲検索 を選択し、[トピック] ドロップダウンリストからメッセージをクエリするトピックを選択し、 パラメーターを設定し、 をクリックします。
受信したイベントの内容のサンプルコードを以下に示します。
{
"id":"94ebc15f-f0db-4bbe-acce-56fb72fb****",
"source":"acs:mq",
"specversion":"1.0",
"type":"mq:Topic:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mq:cn-hangzhou:123456789098****:MQ_INST_123456789098****_BXhFHryi%TopicName",
"time":"2021-04-08T06:01:20.766Z",
"aliyunpublishtime":"2021-04-08T06:01:20.725Z",
"aliyuneventbusname":"BusName",
"data":{
"topic":"TopicName",
"systemProperties":{
"MIN_OFFSET":"0",
"TRACE_ON":"true",
"MAX_OFFSET":"8",
"MSG_REGION":"cn-hangzhou",
"KEYS":"systemProperties.KEYS", // systemProperties.KEYS
"CONSUME_START_TIME":1628577790396,
"UNIQ_KEY":"AC14C305069E1B28CDFA3181CDA2****",
"TAGS":"systemProperties.TAGS", // systemProperties.TAGS
"INSTANCE_ID":"MQ_INST_123456789098****_BXhFHryi"
},
"userProperties":{
},
"body":"TEST"
}
}