すべてのプロダクト
Search
ドキュメントセンター

EventBridge:SMQ へのイベントのルーティング

最終更新日:Jan 14, 2025

イベントルールを使用してイベントをフィルタリングし、Simple Message Queue (旧 MNS) (SMQ) にルーティングできます。このトピックでは、カスタムイベントを SMQ にルーティングするための前提条件と手順について説明します。また、結果の確認方法についても説明します。

前提条件

手順 1: カスタムイベントソースの作成

  1. EventBridge コンソール にログオンします。左側のナビゲーションペインで、[イベントバス] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。[イベントバス] ページで、管理するカスタムイベントバスの名前をクリックします。

  3. 左側のナビゲーションペインで、[イベントソース] をクリックし、次に [イベントソースの追加] をクリックします。

  4. [カスタムイベントソースの追加] パネルで、[名前] パラメーターと [説明] パラメーターを構成し、[イベントプロバイダー] ドロップダウンリストから [カスタムアプリケーション] を選択し、[OK] をクリックします。

手順 2: イベントルールの作成

重要

イベントルールに構成するイベントターゲットは、イベントルールと同じリージョンに存在する必要があります。

  1. EventBridge コンソール にログオンします。

  2. 左側のナビゲーションペインで、[イベントバス] をクリックします。

  3. 上部のナビゲーションバーで、リージョンを選択します。

  4. [イベントバス] ページで、管理するイベントバスの名前をクリックします。

  5. 左側のナビゲーションペインで、[イベントルール] をクリックします。

  6. 左側のナビゲーションペインで、[イベントルール] をクリックします。表示されるページで、[ルールの作成] をクリックします。

  7. [ルールの作成] ウィザードで、次の手順を実行します。

    1. [基本情報の構成] 手順で、[名前] フィールドにルール名、[説明] フィールドにルールの説明を入力します。次に、[次の手順] をクリックします。

    2. [イベントパターンの構成] 手順で、[イベントソースの種類] パラメーターを [カスタムイベントソース] に設定し、手順 1 で構成したカスタムイベントソースを [イベントソース] ドロップダウンリストから選択します。次に、[パターンコンテンツ] コードエディターで、イベントパターンを指定し、[次の手順] をクリックします。

      詳細については、「イベントパターン」をご参照ください。

    3. [ターゲットの構成] 手順で、イベントターゲットを構成し、[作成] をクリックします。

      説明

      1 つのイベントルールに対して最大 5 つのイベントターゲットを構成できます。

      • [サービスタイプ]: [SMQ] を選択します。

      • [キュー]: 作成した SMQ キューを選択します。

      • [メッセージ本文]: [テンプレート] を選択します。

        次のサンプルコードは、変数とテンプレートの例を示しています。

        サンプル変数:

        {
          "source":"$.source" // ソース
        }

        サンプルテンプレート:

        The event comes from ${source} is abnormal. // ${source} からのイベントは異常です。
        

        詳細については、「イベント変換」をご参照ください。

手順 3: イベントのパブリッシュ

  1. EventBridge コンソール にログオンします。左側のナビゲーションペインで、[イベントバス] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。
  3. [イベントバス] ページで、イベントをパブリッシュするイベントバスを見つけ、イベントのパブリッシュ操作 列でクリックします。
    説明 EventBridge コンソールでは、カスタムイベントバスにのみイベントをパブリッシュできます。
  4. [カスタムイベントバスへのイベントのパブリッシュ] パネルで、カスタムイベントソース ドロップダウンリストからカスタムイベントソースを選択し、イベント本体 コードエディターにイベントコンテンツを入力し、[OK] をクリックします。
    イベントパラメーターの詳細については、「概要」をご参照ください。

結果の確認

SMQ コンソールでイベントが受信されているかどうかを確認できます。

  1. SMQ コンソール にログオンします。

  2. 左側のナビゲーションペインで、[キューモデル] > キュー を選択します。

  3. 上部のナビゲーションバーで、リージョンを選択します。

  4. [キュー] ページで、イベントをルーティングしたキューを見つけ、その他 > メッセージの送信[アクション] 列で を選択します。

  5. メッセージを受信[クイックエクスペリエンス] ページの メッセージを受信 セクションで、 をクリックします。

    重要

    Java 用 SMQ SDK を使用して配信されたイベントを受信すると、メッセージの本文が Base64 でエンコードされていないため、受信したメッセージは文字化けして表示されます。そのため、getMessageBodyAsRawBytes メソッドまたは getMessageBodyAsRawString メソッドを使用してイベントの本文を取得する必要があります。

    次のサンプルコードは、受信したイベントの例を示しています。

    {
        "id":"22h0iaji-8cf5-2iea-j4a6-i99a5j1a****", // ID
        "source":"acs.oss", // ソース
        "specversion":"1.0", // バージョン
        "type":"oss:ObjectCreated:PostObject", // タイプ
        "datacontenttype":"application/json;charset=utf-8", // データコンテンツタイプ
        "dataschema":"http://example.com/item.json", // データスキーマ
        "subject":"acs:oss:cn-hangzhou:<yourAccountId>:xls-papk/game_apk/123.jpg", // サブジェクト
        "aliyunaccountid":"165228866041****", // Alibaba Cloud アカウント ID
        "aliyunpublishtime":"2020-10-14T17:00:03.628Asia/Shanghai", // パブリッシュ時刻
        "aliyuneventbusname":"MyEventBus", // EventBus 名
        "aliyunpublishaddr":"10.0.XX.XX", // パブリッシュアドレス
        "data":{ // データ
            "name":"Eventbridge", // 名前
            "number":100 // 番号
        }
    }