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
EventBridgeがアクティブ化され、必要な権限がResource Access Management (RAM) ユーザーに付与されます。 詳細については、「EventBridgeの有効化とRAMユーザーへの権限付与」をご参照ください。
Function Compute
関数が作成されます。 詳細については、「関数の管理」トピックの関数の作成セクションをご参照ください。
Apache RocketMQ
Apache RocketMQクラスターが作成されます。
トピックが作成されます。
コンシューマグループが作成されます。
使用上の注意
トリガーソースとして機能するApache RocketMQクラスターは、インターネットまたはAlibaba Cloud仮想プライベートクラウド (VPC) 経由でアクセスできます。
VPC経由でApache RocketMQクラスターにアクセスする場合、VPCはfunction Computeで呼び出される関数と同じリージョンに存在する必要があります。
作成されたイベントストリームの数が上限に達した場合、Apache RocketMQトリガーは作成できません。 イベントストリーム数の制限の詳細については、「制限」をご参照ください。
ステップ1: Apache RocketMQトリガーの作成
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。
機能の詳細ページで、[設定] タブをクリックします。 左側のナビゲーションウィンドウで、[トリガー] をクリックします。 次に、[トリガーの作成] をクリックします。
トリガーの作成パネルで、パラメーターを設定し、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クラスターにアクセスします。 VPC、vSwitch、およびセキュリティグループパラメーターを設定する必要があります。
インターネット
呼び出しメソッド
関数が呼び出されるモード。
有効な値:
Sync Invocation (デフォルト): イベントが関数を呼び出した後、function Computeは関数の呼び出しが完了するのを待ってから応答を返します。 詳細については、「」をご参照ください。
非同期呼び出し: イベントが関数を呼び出した後、function Computeはすぐに応答を返し、関数が少なくとも1回正常に実行されるようにします。 ただし、詳細な結果は返されません。 このモードは、スケジューリング遅延が大きい関数に適しています。 詳細については、「概要」をご参照ください。
同期呼び出し
トリガー状態
作成直後にトリガーを有効にするかどうかを指定します。 デフォルトでは、Enable Triggerが選択されています。 トリガーは作成後すぐに有効になります。
トリガーの有効化
プッシュ設定、再試行ポリシー、デットレターキューなどの高度な設定の詳細については、「」をご参照ください。
トリガーは、作成後に [トリガー] タブに表示されます。 作成したトリガーを変更または削除する方法の詳細については、「トリガーの管理」をご参照ください。
ステップ2: 関数の入力パラメータを設定する
Apache RocketMQイベントは、function Computeの関数を呼び出すために使用されます。 イベントのパラメーターは、関数の入力パラメーターとして使用されます。 イベントのパラメーターを手動で渡して、関数をテストとして呼び出すことができます。
関数の詳細ページの [コード] タブで、[テスト関数] の隣のアイコンをクリックし、ドロップダウンリストから [テストパラメーターの設定] を選択します。
[テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、イベント名とイベント内容を入力し、[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がメッセージを受信すると、トリガーは自動的に関数を呼び出します。
関数の詳細ページで、コードタブで、コードエディターに関数コードを入力し、デプロイ.
この例では、関数コードは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'); }
クリックテスト機能.
詳細情報
Function Computeコンソールに加えて、次のいずれかの方法を使用してトリガーを設定できます。
SDKを使用してトリガーを設定します。 詳細は、SDK をご参照ください。
既存のトリガーを変更または削除するには、「トリガーの管理」をご参照ください。