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

Function Compute:自己管理型 Apache RocketMQ トリガー

最終更新日:Nov 09, 2025

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

背景

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

トリガーが作成された後、Function Compute コンソールでその情報を表示できます。EventBridge コンソールで自動的に作成されたリソースを表示することもできます。メッセージが Apache RocketMQ の Topic に発行されると、関数がトリガーされます。バッチ設定に基づいて、1 つ以上のメッセージイベントがバッチで関数にプッシュされます。

前提条件

制限

  • イベントソースとして機能する Apache RocketMQ クラスターは、インターネット経由または Alibaba Cloud VPC (VPC) 内からアクセスできる必要があります。

  • Apache RocketMQ クラスターが VPC 内からアクセス可能な場合、VPC タイプのインスタンスと Function Compute 関数は同じリージョンにある必要があります。

  • 作成されたイベントストリームの数が上限に達した場合、Apache RocketMQ トリガーを作成することはできません。イベントストリームの数の制限に関する詳細については、「制限」をご参照ください。

ステップ 1: Apache RocketMQ トリガーの作成

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[Function Management] > [Functions] を選択します。

  2. 上部のナビゲーションバーで、リージョンを選択します。[Functions] ページで、対象の関数をクリックします。

  3. 関数の詳細ページで、[Triggers] タブをクリックし、[Create Trigger] をクリックします。

  4. [Create Trigger] パネルでパラメーターを設定し、[OK] をクリックします。

    パラメーター

    手順

    トリガータイプ

    [自己管理型 Apache RocketMQ] を選択します。

    自己管理型 Apache RocketMQ

    名前

    トリガーのカスタム名を入力します。

    apache-rocketmq-trigger

    バージョンまたはエイリアス

    デフォルト値は [LATEST] です。別のバージョンまたはエイリアスのトリガーを作成するには、関数の詳細ページの右上隅でそのバージョンまたはエイリアスに切り替えます。バージョンとエイリアスの詳細については、「バージョンの管理」および「エイリアスの管理」をご参照ください。

    LATEST

    エンドポイント

    クラスターの NameServer アドレスを入力します。

    192.168.X.X:9876

    Topic

    作成した Apache RocketMQ インスタンスの Topic を選択します。

    testTopic

    グループ ID

    作成した Apache RocketMQ インスタンスの使用者グループ ID を選択します。

    testGroup

    フィルタータイプ

    メッセージのフィルタリングタイプを選択します。有効な値:

    • Tag: タグでメッセージをフィルターします。

    • SQL: SQL 文でメッセージをフィルターします。メッセージのプロパティとプロパティ値を照合できます。

    Tag

    フィルター

    [フィルタータイプ] を選択した後、対応するフィルターステートメントを設定します。

    TagA

    認証モード

    認証モードを選択します。[ACL] モードがサポートされています。

    ACL

    ユーザー名

    [認証モード][ACL] に設定した場合は、ID 検証のために Apache RocketMQ のユーザー名を設定します。

    admin

    パスワード

    [認証モード][ACL] に設定した場合は、ID 検証のために Apache RocketMQ のパスワードを設定します。

    ******

    コンシューマオフセット

    コンシューマオフセットを選択します。これは、EventBridge がメッセージのプルを開始する位置を指定します。有効な値:

    • [最新のオフセット]: 最新のオフセットからメッセージを消費します。

    • [最も古いオフセット]: 最も古いオフセットからメッセージを消費します。

    • [タイムスタンプ]: 指定した時点からメッセージを消費します。

    最新のオフセット

    ネットワーク設定

    メッセージルーティングのネットワークタイプを選択します。有効な値:

    • [インターネット]: インターネット経由で Apache RocketMQ クラスターにアクセスします。

    • [VPC]: Alibaba Cloud VPC を介して Apache RocketMQ クラスターにアクセスします。対応する [VPC][VSwitch]、および [セキュリティグループ] を選択する必要があります。

    インターネット

    呼び出しモード

    関数の呼び出しモードを選択します。

    有効な値:

    • [同期]: これはデフォルトの呼び出しモードです。イベントが関数をトリガーします。Function Compute は、関数が終了するのを待ってから結果を返します。詳細については、「同期呼び出し」をご参照ください。

    • [非同期]: このモードは、スケジューリング遅延が長い関数に適しています。イベントが関数をトリガーした後、Function Compute はすぐにレスポンスを返し、関数が少なくとも 1 回実行されることを保証します。ただし、実行結果は返しません。詳細については、「非同期呼び出し」をご参照ください。

    同期

    トリガーの状態

    作成直後にトリガーを有効にするかどうかを指定します。デフォルトでは、このオプションが選択されており、作成直後にトリガーが有効になることを意味します。

    トリガーを有効にする

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

    トリガーが作成されると、[Triggers] タブに表示されます。トリガーを変更または削除するには、「トリガーの管理」をご参照ください。

ステップ 2: 関数の入力パラメーターの設定

自己管理型の Apache RocketMQ イベントソースは、[event] を入力パラメーターとして関数に渡します。手動で [event] を関数に渡して、トリガーイベントをシミュレートできます。

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

  2. [Configure Test Parameters] パネルで、[Create New Test Event] または [Edit Existing Test Event] を選択し、イベント名とイベント内容を入力して、[OK] をクリックします。

    [event] のフォーマットは次のとおりです。

    [
      {
        "msgId": "7F0000010BDD2A84AEE70DA49B57****",
        "topic": "testTopic",
        "systemProperties": {
          "UNIQ_KEY": "7F0000010BDD2A84AEE70DA49B57****",
          "CLUSTER": "DefaultCluster",
          "MIN_OFFSET": "0",
          "TAGS": "TagA",
          "MAX_OFFSET": "128"
        },
        "userProperties": {},
        "body": "Hello RocketMQ"
      }
    ]

    [event] のパラメーターは次の表のとおりです。

    パラメーター

    タイプ

    説明

    msgId

    String

    7F0000010BDD2A84AEE70DA49B57****

    Apache RocketMQ メッセージの ID。

    topic

    String

    testTopic

    Topic 名。

    systemProperties

    Map

    システムプロパティ。

    UNIQ_KEY

    String

    7F0000010BDD2A84AEE70DA49B57****

    メッセージの一意のキー。

    CLUSTER

    String

    DefaultCluster

    Apache RocketMQ クラスターの名前。

    MIN_OFFSET

    Int

    0

    最小オフセット。

    MAX_OFFSET

    Int

    128

    最大オフセット。

    TAGS

    String

    TagA

    フィルタープロパティ。

    userProperties

    Map

    なし

    ユーザープロパティ。

    body

    String

    Hello RocketMQ

    メッセージの内容。

ステップ 3: 関数コードの記述とテスト

トリガーを作成した後、関数コードを記述してテストし、それが正しいことを確認できます。本番環境では、Apache RocketMQ がメッセージを受信するたびに、トリガーが自動的に関数を呼び出します。

  1. 関数の詳細ページで、[Code] タブをクリックします。コードエディタでコードを記述し、[Deploy Code] をクリックします。

    このトピックでは、Node.js コードを例として使用します。サンプルコードは次のとおりです。

    'use strict';
    /*
    イニシャライザ機能を有効にするには、
    次のように initializer 関数を実装します:
    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. [Test Function] をクリックします。

詳細情報

Function Compute コンソールに加えて、次の方法でトリガーを設定することもできます:

  • Serverless Devs ツールを使用してトリガーを設定します。詳細については、「Serverless Devs の一般的なコマンド」をご参照ください。

  • SDK を使用してトリガーを設定します。詳細については、「SDK」をご参照ください。

トリガーを変更または削除するには、「トリガーの管理」をご参照ください。