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

Function Compute:RocketMQ トリガー

最終更新日:Sep 04, 2026

ApsaraMQ for RocketMQ がイベントソースとして EventBridge を介して Function Compute (FC) と統合されると、ApsaraMQ for RocketMQ トリガー (以下、RocketMQ トリガー) は関連付けられた関数を呼び出すことができます。この関数を使用すると、ApsaraMQ for RocketMQ に発行されたメッセージをカスタムで処理できます。本トピックでは、FC コンソールでの RocketMQ トリガーの作成、関数のエントリポイントパラメーターの設定、および関数コードの記述とテストの方法について説明します。

仕組み

FC コンソールでトリガー作成リクエストを送信すると、FC はトリガー設定に基づいて、EventBridge にイベントストリームリソースを自動的に作成します。

トリガーが作成されると、FC コンソールでトリガー情報を表示し、EventBridge コンソールで自動的に作成されたリソースを確認できます。ソースの ApsaraMQ for RocketMQ インスタンスでメッセージがエンキューされると、FC が呼び出されます。各呼び出し中に、バッチ設定に基づいて、1 つ以上のメッセージイベントがバッチとして関数にプッシュされます。この動作は、エンドツーエンドのストリーミングデータ処理シナリオに適しています。

注意事項

  • イベントソースとして機能する ApsaraMQ for RocketMQ インスタンスは、FC の関数と同じリージョンにある必要があります。

  • 作成されたイベントストリームの数が上限を超えると、RocketMQ トリガーを作成できなくなります。

単一の Alibaba Cloud アカウント内の単一リージョンでトリガーを作成する際のリソース数の制限については、「制限」をご参照ください。

前提条件

手順1:トリガーの作成

  1. FC コンソールにログインし、管理する関数を見つけ、関数詳細ページで トリガー タブをクリックし、トリガーの作成 をクリックします。

  2. [トリガーの作成] パネルで、トリガータイプ を [ApsaraMQ for RocketMQ] に設定し、次の表に従ってパラメーターを設定してから、OK をクリックします。

パラメーター 説明 例
[名前] カスタムのトリガー名を入力します。 rocketmq-trigger
[バージョンまたはエイリアス] デフォルト値: LATEST。別のバージョンまたはエイリアス用のトリガーを作成するには、まず関数詳細ページの右上隅でそのバージョンまたはエイリアスに切り替えます。 バージョンとエイリアスの概要については、「バージョン」と「エイリアス」をご参照ください。 LATEST
[Apache RocketMQ インスタンス] 既存の ApsaraMQ for RocketMQ インスタンスを選択します。 rmq-zky****
[トピック] 既存の ApsaraMQ for RocketMQ インスタンスのトピックを選択します。 topic1
タグ メッセージフィルタータグを入力します。 このフィルタータグが付いたメッセージが受信された場合にのみ、関数が呼び出されます。 tag
グループ ID グループ ID を新規作成するか、既存のものを選択します。 既存のビジネスとグループ ID を共有しないでください。そのビジネスのメッセージの送受信に影響が及ぶ可能性があります。 GID_FC_TRIGGER_****
[コンシューマーオフセット] ApsaraMQ for RocketMQ メッセージのコンシューマーオフセットを選択します。これは、EventBridge がメッセージのプルを開始する位置です。 有効な値:[最新のオフセット]: 最新のオフセットから消費します。[最初のオフセット]: 最も古いオフセットから消費します。[タイムスタンプ]: 指定したタイムスタンプから消費します。 最新のオフセット
[呼び出しメソッド] 関数の呼び出し方法を選択します。 有効な値:[同期呼び出し]: シーケンシャルな呼び出しシナリオに適しています。 単一のイベントまたはバッチで関数が呼び出され、現在の呼び出しが結果を返した後にのみ、次のイベントまたはバッチで関数が呼び出されます。 同期呼び出しリクエスト本文の最大ペイロードは 32 MB です。 詳細については、「同期呼び出し」をご参照ください。[非同期呼び出し]: イベントを迅速に消費します。 単一のイベントまたはバッチで関数が呼び出されると、FC はすぐにレスポンスを返し、次のイベントまたはバッチで関数が呼び出されます。 このプロセス中、関数は非同期で実行されます。 非同期呼び出しリクエスト本文の最大ペイロードは 128 KB です。 詳細については、「非同期呼び出し」をご参照ください。 同期呼び出し

プッシュ設定、再試行ポリシー、デッドレターキューなどの高度な設定については、「トリガーの高度な機能」をご参照ください。

手順2: (オプション) 関数のエントリーパラメーターの設定

ApsaraMQ for RocketMQ のイベントソースは、event 入力パラメーターとして関数に渡されます。 コードを使用して event パラメーターを解析し、それを処理します。 手動で event を関数に渡してトリガーイベントをシミュレートし、関数コードが正しいかどうかを確認できます。

  1. 関数詳細ページの コード タブで、関数のテスト の横にある image.png アイコンをクリックし、ドロップダウンリストから テストパラメーターの設定 を選択します。

  2. テストパラメーターの設定 パネルで、新規テストイベントの作成 または 既存のテストイベントの変更 を選択し、イベント名とイベント内容を入力して、[OK] をクリックします。

event の形式は次のとおりです。

[
    {
    "id":"94ebc15f-f0db-4bbe-acce-56fb72fb****",
    "source":"RocketMQ-Function-rocketmq-trigger",
    "specversion":"1.0",
    "type":"mq:Topic:SendMessage",
    "datacontenttype":"application/json; charset=utf-8",
    "subject":"acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName",
    "time":"2021-04-08T06:01:20.766Z",
    "aliyunaccountid":"164901546557****",
    "aliyunpublishtime":"2021-10-15T02:05:16.791Z",
    "aliyunoriginalaccountid":"164901546557****",
    "aliyuneventbusname":"RocketMQ-Function-rocketmq-trigger",
    "aliyunregionid":"cn-chengdu",
    "aliyunpublishaddr":"42.120.XX.XX",
    "data":{
        "topic":"TopicName",
        "systemProperties":{
            "MIN_OFFSET":"0",
            "TRACE_ON":"true",
            "MAX_OFFSET":"8",
            "MSG_REGION":"cn-hangzhou",
            "KEYS":"systemProperties.KEYS",
            "CONSUME_START_TIME":1628577790396,
            "TAGS":"systemProperties.TAGS",
            "INSTANCE_ID":"MQ_INST_164901546557****_BXhFHryi"
        },
        "userProperties":{

        },
        "body":"TEST"
    }
    },
    {
    "id":"94ebc15f-f0db-4bbe-acce-56fb72fb****",
    "source":"RocketMQ-Function-rocketmq-trigger",
    "specversion":"1.0",
    "type":"mq:Topic:SendMessage",
    "datacontenttype":"application/json; charset=utf-8",
    "subject":"acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName",
    "time":"2021-04-08T06:01:20.766Z",
    "aliyunaccountid":"164901546557****",
    "aliyunpublishtime":"2021-10-15T02:05:16.791Z",
    "aliyunoriginalaccountid":"164901546557****",
    "aliyuneventbusname":"RocketMQ-Function-rocketmq-trigger",
    "aliyunregionid":"cn-chengdu",
    "aliyunpublishaddr":"42.120.XX.XX",
    "data":{
        "topic":"TopicName",
        "systemProperties":{
            "MIN_OFFSET":"0",
            "TRACE_ON":"true",
            "MAX_OFFSET":"8",
            "MSG_REGION":"cn-hangzhou",
            "KEYS":"systemProperties.KEYS",
            "CONSUME_START_TIME":1628577790396,
            "TAGS":"systemProperties.TAGS",
            "INSTANCE_ID":"MQ_INST_164901546557****_BXhFHryi"
        },
        "userProperties":{

        },
        "body":"TEST"
    }
    }
]

次の表に、data フィールドに含まれるパラメーターを示します。 CloudEvents 仕様で定義されているパラメーターについては、「概要」をご参照ください。

フィールド 型 例 説明
topic String TopicName トピック名。
systemProperties Map RocketMQ システムレベルのメッセージプロパティ。
systemProperties.MIN_OFFSET Int 0 キュー内の最も古いオフセット。
systemProperties.TRACE_ON Boolean true メッセージトレースの有無。
systemProperties.MAX_OFFSET Int 8 キュー内の最新のオフセット。
systemProperties.MSG_REGION String cn-hangzhou メッセージが送信されたリージョン。
systemProperties.KEYS String systemProperties.KEYS メッセージのフィルタリングに使用されるキー。
systemProperties.CONSUME_START_TIME Long 1628577790396 メッセージ消費の開始時間 (ミリ秒単位)。
systemProperties.UNIQ_KEY String AC14C305069E1B28CDFA3181CDA2**** メッセージの一意のキー。
systemProperties.TAGS String systemProperties.TAGS メッセージのフィルタリングに使用されるタグ。
systemProperties.INSTANCE_ID String MQ_INST_123456789098****_BXhFHryi ApsaraMQ for RocketMQ インスタンス ID。
userProperties Map ユーザープロパティ。
body String TEST メッセージ本文。

手順3:関数コードの記述とテスト

トリガーを作成した後、関数コードを記述してテストし、コードが正しいことを確認します。 実際には、ApsaraMQ for RocketMQ イベントが EventBridge を介して FC に配信されると、トリガーが自動的に関数を呼び出します。

  1. 関数詳細ページの コード タブで、コードエディターにコードを記述し、デプロイメントコード をクリックします。

    このトピックでは、Node.js の関数コードを例として示します。

    'use strict';
    /*
    初期化機能を有効にするには、
    次のように初期化関数を実装します:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
      // event パラメーターを解析し、イベントを処理します。
      callback(null, 'return result');
    }
  2. 関数をテストします。

    方法1: 関数のエントリーパラメーター event を設定してイベントソースをシミュレートした場合は、関数のテスト をクリックします。

    方法2: ApsaraMQ for RocketMQ コンソールにログインし、使用する ApsaraMQ for RocketMQ インスタンスのトピックを見つけ、[メッセージ送受信テスト] をクリックし、プロンプトに従ってメッセージを送信します。

  3. 実行が完了したら、関数詳細ページの コード タブで [リアルタイムログ] をクリックして結果を表示します。