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

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

最終更新日:Jul 25, 2024

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

背景情報

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

トリガーの作成後、Function Computeコンソールでトリガーに関する情報を表示できます。 EventBridgeコンソールで、作成されたリソースに関する情報を表示することもできます。 メッセージがApache RocketMQでキューに入れられると、function Computeの関連する関数が呼び出されます。 1つ以上のメッセージイベントがバッチで関数にプッシュされ、バッチ設定に基づいて処理されます。

前提条件

  • EventBridge

  • Function Compute

    • 関数が作成されます。 詳細については、「関数の管理」トピックの関数の作成セクションをご参照ください。

  • Apache RocketMQ

  • 説明

    次のドキュメントを参照して、Apache RocketMQクラスターをすばやくデプロイし、メッセージを送受信できます。

    • Apache RocketMQクラスターが作成されます。

    • トピックが作成されます。

    • コンシューマグループが作成されます。

使用上の注意

  • トリガーソースとして機能するApache RocketMQクラスターは、インターネットまたはAlibaba Cloud仮想プライベートクラウド (VPC) 経由でアクセスできます。

  • VPC経由でApache RocketMQクラスターにアクセスする場合、VPCはfunction Computeで呼び出される関数と同じリージョンに存在する必要があります。

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

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

  1. Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。

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

  3. 機能の詳細ページで、[設定] タブをクリックします。 左側のナビゲーションウィンドウで、[トリガー] をクリックします。 次に、[トリガーの作成] をクリックします。

  4. トリガーの作成パネルで、パラメーターを設定し、OKをクリックします。

    パラメーター

    説明

    トリガータイプ

    トリガーのタイプ。 [Self-built Apache RocketMQ] を選択します。

    自作Apache RocketMQ

    名前

    トリガーの名前。

    apache-rocketmq-trigger

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

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

    LATEST

    Endpoint

    Apache RocketMQクラスターのNameServerのIPアドレス。

    192.168.X.X:9876

    トピック

    作成されたApache RocketMQクラスター内の既存のトピックの名前。

    testTopic

    グループID

    作成されたApache RocketMQクラスター内の既存のコンシューマーグループのID。

    testGroup

    FilterType

    メッセージのフィルタリングに使用するメソッド。 有効な値:

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

    • SQL: SQL文でメッセージをフィルタリングします。 メッセージの属性識別子と属性値を一致させることができます。

    タグ

    フィルター

    FilterTypeパラメーターを設定した後、メッセージのフィルタリングに使用するタグまたはSQLステートメントを設定する必要があります。

    タガ

    認証モード

    認証モードです。 このパラメーターはACLに設定できます。

    ACL

    ユーザー名

    [認証モード] パラメーターを [ACL] に設定した場合、認証用にApache RocketMQユーザー名を指定する必要があります。

    admin

    Password

    [認証モード] パラメーターを [ACL] に設定した場合、認証用にApache RocketMQパスワードを指定する必要があります。

    ******

    消費者オフセット

    メッセージのコンシューマオフセット。 コンシューマーオフセットは、Apache RocketMQがEventBridgeからメッセージをプルし始めるポイントを指定します。 有効な値:

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

    • Earlest Offset: 最も早いオフセットからメッセージを消費します。

    • Timestamp: 指定されたタイムスタンプからメッセージを消費します。

    最新のオフセット

    [ネットワーク]

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

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

    • VPC: VPC経由でApache RocketMQクラスターにアクセスします。 VPCvSwitch、およびセキュリティグループパラメーターを設定する必要があります。

    インターネット

    呼び出しメソッド

    関数が呼び出されるモード。

    有効な値:

    • Sync Invocation (デフォルト): イベントが関数を呼び出した後、function Computeは関数の呼び出しが完了するのを待ってから応答を返します。 詳細については、「」をご参照ください。

    • 非同期呼び出し: イベントが関数を呼び出した後、function Computeはすぐに応答を返し、関数が少なくとも1回正常に実行されるようにします。 ただし、詳細な結果は返されません。 このモードは、スケジューリング遅延が大きい関数に適しています。 詳細については、「概要」をご参照ください。

    同期呼び出し

    トリガー状態

    作成直後にトリガーを有効にするかどうかを指定します。 デフォルトでは、Enable Triggerが選択されています。 トリガーは作成後すぐに有効になります。

    トリガーの有効化

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

    トリガーは、作成後に [トリガー] タブに表示されます。 作成したトリガーを変更または削除する方法の詳細については、「トリガーの管理」をご参照ください。

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

Apache RocketMQイベントは、function Computeの関数を呼び出すために使用されます。 イベントのパラメーターは、関数の入力パラメーターとして使用されます。 イベントのパラメーターを手動で渡して、関数をテストとして呼び出すことができます。

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

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

    次のサンプルコードは、イベントコンテンツの形式の例を示しています。

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

    イベントのパラメーターを次の表に示します。

    パラメーター

    データ型

    説明

    msgId

    String

    7F0000010BDD2A84AEE70DA49B57 ****

    Apache RocketMQメッセージのID。

    topic

    String

    testTopic

    Apache RocketMQクラスター内のトピックの名前。

    systemProperties

    地図

    システムのプロパティ。

    UNIQ_KEY

    String

    7F0000010BDD2A84AEE70DA49B57 ****

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

    CLUSTER

    String

    DefaultCluster

    Apache RocketMQクラスターの名前。

    MIN_OFFSET

    Int

    0

    最小オフセット。

    MAX_OFFSET

    Int

    128

    最大オフセット。

    TAGS

    String

    タガ

    メッセージのフィルタリングに使用されるタグ。

    userProperties

    地図

    非該当

    ユーザーのプロパティ。

    body

    String

    こんにちはRocketMQ

    メッセージの内容。

ステップ3: 関数コードの書き込みとテスト

トリガーを作成した後、関数コードを記述し、関数コードをテストして、コードが有効かどうかを確認できます。 Apache RocketMQがメッセージを受信すると、トリガーは自動的に関数を呼び出します。

  1. 関数の詳細ページで、コードタブで、コードエディターに関数コードを入力し、デプロイ.

    この例では、関数コードはNode.jsで記述されています。 次のサンプルコードに例を示します。

    'use strict';
    /*
    To enable the initializer feature
    please implement the initializer function as below:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
      // Parse the event parameters and process the event. 
      callback(null, 'return result');
    }
  2. クリックテスト機能.

詳細情報

Function Computeコンソールに加えて、次のいずれかの方法を使用してトリガーを設定できます。

  • Serverless Devsツールを使用してトリガーを設定します。 その他の操作については、を参照してください。

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

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