EventBridgeを使用してApache RocketMQを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には、インターネットまたは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
クラスターNameServerのアドレスを入力します。
192.168.X.X:9876
トピック
作成したApache RocketMQインスタンスのトピックを選択します。
testTopic
グループID
作成したApache RocketMQインスタンスのコンシューマーグループのIDを選択します。
testGroup
FilterType
メッセージフィルターの種類を選択します。 有効な値:
タグ: タグでメッセージをフィルタリングします。
SQL: SQL文でメッセージをフィルタリングします。 メッセージの属性識別子と属性値を一致させることができます。
タグ
フィルター
FilterTypeを設定した後、対応するフィルタータイプの下にフィルターステートメントを設定する必要があります。
タガ
認証モード
認証モードを選択します。 ACLモードがサポートされています。
ACL
ユーザー名
[認証モード] を [ACL] に設定した場合、認証のためにApache RocketMQユーザー名を入力する必要があります。
admin
Password
[認証モード] を [ACL] に設定した場合、認証用にApache RocketMQパスワードを設定する必要があります。
******
消費者オフセット
メッセージの消費者オフセットを選択します。 コンシューマーオフセットは、Apache RocketMQがEventBridgeからメッセージをプルする場所を指定します。 有効な値:
最新のオフセット: 最新のオフセットからメッセージを消費します。
Earlest Offset: 最も早いオフセットからメッセージを消費します。
Timestamp: 指定されたタイムスタンプからメッセージを消費します。
最新のオフセット
[ネットワーク]
メッセージをルーティングするネットワークのタイプを選択します。 有効な値:
インターネット: インターネット経由でApache RocketMQクラスターにアクセスします。
Virtual Private Cloud: VPC経由でApache RocketMQクラスターにアクセスします。 VPC、vSwitch、およびセキュリティグループを設定する必要があります。
インターネット
呼び出しメソッド
関数を呼び出すメソッドを選択します。
有効な値:
同期呼び出し
トリガー状態
トリガーの作成直後に有効にするかどうかを指定します。 デフォルトでは、Enable Triggerが選択され、作成後すぐにトリガーが有効になります。
トリガーの有効化
プッシュ設定、再試行ポリシー、無効キューなどの高度な設定の詳細については、「トリガーの高度な機能」をご参照ください。
トリガーは、作成後に [トリガー] タブに表示されます。 作成したトリガーを変更または削除するには、「トリガーの管理」をご参照ください。
ステップ2: 関数の入力パラメータを設定する
自作のApache RocketMQイベントソースは、入力パラメーターとしてeventの形式で関数に渡されます。 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" } ]
イベントに含まれるパラメーターを次の表に示します。
パラメーター
データ型
例
説明
msgId
String
7F0000010BDD2A84AEE70DA49B57 ****
Apache RocketMQメッセージのID。
トピック
String
testTopic
トピック名。
systemProperties
地図
システムのプロパティ。
UNIQ_KEY
String
7F0000010BDD2A84AEE70DA49B57 ****
メッセージの一意のキー。
クラスター
String
DefaultCluster
Apache RocketMQクラスターの名前。
MIN_OFFSET
Int
0
最小オフセット。
MAX_OFFSET
Int
128
最大オフセット。
タグ
String
タガ
メッセージのフィルタリングに使用されるタグ。
userProperties
地図
なし。
ユーザーのプロパティ。
ボディ
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コンソールに加えて、次の方法を使用してトリガーを設定できます。
既存のトリガーを変更または削除するには、「トリガーの管理」をご参照ください。