イベントルールを使用してイベントをフィルタリングし、ApsaraMQ for RabbitMQ にルーティングできます。このトピックでは、カスタムイベントを ApsaraMQ for RabbitMQ にルーティングするための前提条件と手順について説明します。また、結果を確認する方法についても説明します。
前提条件
EventBridge
EventBridge がアクティブ化されており、必要な権限が Resource Access Management (RAM) ユーザーに付与されていること。詳細については、「EventBridge をアクティブ化し、RAM ユーザーに権限を付与する」をご参照ください。
ApsaraMQ for RabbitMQ
インスタンス、vhost、およびキューが作成されていること。詳細については、「手順 1: リソースを作成する」をご参照ください。
手順 1: カスタムイベントソースを作成する
EventBridge コンソール にログインします。左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。[イベントバス] ページで、管理するカスタムイベントバスの名前をクリックします。
左側のナビゲーションペインで、[イベントソース] をクリックし、次に [イベントソースの追加] をクリックします。
[カスタムイベントソースの追加] パネルで、[名前] パラメーターと [説明] パラメーターを設定し、[イベントプロバイダー] ドロップダウンリストから [カスタムアプリケーション] を選択し、[OK] をクリックします。
手順 2: イベントルールを作成する
イベントルールに設定するイベントターゲットは、イベントルールと同じリージョンに存在する必要があります。
EventBridge コンソール にログインします。
左側のナビゲーションペインで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
[イベントバス] ページで、管理するイベントバスの名前をクリックします。
左側のナビゲーションペインで、[イベントルール] をクリックします。
左側のナビゲーションペインで、[イベントルール] をクリックします。表示されるページで、[ルールの作成] をクリックします。
[ルールの作成] パネルで、次の手順を実行します。
基本情報の設定 手順で、名前 フィールドにルール名を入力し、[説明] フィールドにルールの説明を入力します。次に、次へ をクリックします。
イベントパターンの設定 手順で、イベントソースタイプ を カスタムイベントソース に設定し、イベントソース ドロップダウンリストから手順 1 で設定したカスタムイベントソースを選択します。次に、パターン内容 コードエディターにイベントパターンを入力し、次へ をクリックします。
詳細については、「イベントパターン」をご参照ください。
イベントターゲットの設定 手順で、イベントターゲットを設定し、作成 をクリックします。
説明1 つのイベントルールに対して最大 5 つのイベントターゲットを設定できます。
ApsaraMQ for RabbitMQ をイベントターゲットとして指定する場合に設定する必要があるパラメーターを次の表に示します。
パラメーター
説明
サービスタイプ
ドロップダウンリストから Message Queue for RabbitMQ を選択します。
インスタンス ID
作成した Message Queue for RabbitMQ インスタンスの ID を選択します。
Vhost
作成した vhost を選択します。
ターゲットタイプ
ビジネス要件に基づいて、Exchange または Queue を選択します。
Exchange
作成した exchange を選択します。このパラメーターは、ターゲットタイプ パラメーターを Exchange に設定した場合にのみ必須です。
メッセージのルーティングルール (Routing Key)
ビジネス要件に基づいて、[イベントの一部] または [固定値] を選択します。このパラメーターは、ターゲットタイプ パラメーターを Exchange に設定した場合にのみ必須です。
キュー
作成したキューを選択します。このパラメーターは、ターゲットタイプ パラメーターを Queue に設定した場合にのみ必須です。
メッセージ本文
ビジネス要件に基づいて、[イベント全体]、[イベントの一部]、[固定値]、または [テンプレート] を選択します。
メッセージ ID
ビジネス要件に基づいて、[イベントの一部]、[固定値]、または [テンプレート] を選択します。
カスタムプロパティ
ビジネス要件に基づいて、[イベントの一部] または [テンプレート] を選択します。
説明このパラメーターの値は、[マップ] タイプです。
以下は、EventBridge のイベント変換方法の例です。詳細については、「イベント変換」をご参照ください。
- [イベントの一部] の例
$.data.body - [定数] の例
Pay attention to the alert. - [変数] と [テンプレート] の例
変数の例:
{ "type":"$.type" }テンプレートの例:
The event type is ${type}.
- [イベントの一部] の例
手順 3: イベントを発行する
EventBridge コンソール にログインします。左側のナビゲーションペインで、[イベントバス] をクリックします。
- 上部のナビゲーションバーで、リージョンを選択します。
- [イベントバス] ページで、イベントを発行するイベントバスを見つけ、イベントのパブリッシュ操作 列の をクリックします。説明 EventBridge コンソールでは、カスタムイベントバスにのみイベントを発行できます。
- [カスタムイベントバスへのイベントの発行] パネルで、カスタムイベントソース ドロップダウンリストからカスタムイベントソースを選択し、イベント本体 コードエディターにイベントコンテンツを入力し、[OK] をクリックします。イベントパラメーターの詳細については、「概要」をご参照ください。
結果を確認する
ApsaraMQ for RabbitMQ コンソールで、イベントが受信されているかどうかを確認できます。
ApsaraMQ for RabbitMQ コンソール にログインします。左側のナビゲーションペインで、インスタンスリスト をクリックします。
インスタンスリスト ページの上部ナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。次に、インスタンスリストで、管理するインスタンスの名前をクリックします。
インスタンスリスト ページで、管理するインスタンスを見つけ、操作 列の を選択します。
メッセージ検索 ページの左上隅で、[vhost] パラメーターを設定し、キュー名による照会 タブをクリックします。表示されるタブで、[キュー] ドロップダウンリストから管理するキューを選択し、時間範囲を指定して、照会 をクリックします。
次のサンプルコードは、受信したイベントの例を示しています。
{
"datacontenttype":"application/json;charset=utf-8",
"aliyunaccountid":"143998900779****",
"data":{
"envelope":{
"deliveryTag":98,
"exchange":"",
"redeliver":false,
"routingKey":"housekeeping"
},
"body":{
"Hello":"EventBridge"
},
"props":{
"contentEncoding":"UTF-8",
"messageId":"f7622d51-e198-41de-a072-77c1ead7****"
}
},
"subject":"acs:amqp:cn-hangzhou:143998900779****:/instances/amqp-cn-zvp2av0m****/vhosts/eb-connect/queues/housekeeping",
"aliyunoriginalaccountid":"143998900779****",
"source":"housekeeping.rabbitmq",
"type":"amqp:Queue:SendMessage",
"aliyunpublishtime":"2021-08-12T06:56:50.783Z",
"specversion":"1.0",
"aliyuneventbusname":"Housekeeping-Connect",
"id":"8b09e19b-8cbd-4c46-ab77-9cc39c44****",
"time":"2021-08-12T06:56:40.709Z",
"aliyunregionid":"cn-hangzhou"
}