EventBridgeを使用してApsaraMQ for MQTTをFunction Computeと統合した後、ApsaraMQ for MQTTトリガーを使用して関数をトリガーできます。 関数は、ApsaraMQ for MQTTに公開されたメッセージを処理できます。 このトピックでは、ApsaraMQ for MQTTトリガーの作成、入力パラメーターの設定、およびFunction Computeコンソールでのコードの書き込みとテストの方法について説明します。
背景情報
Function Computeコンソールでトリガーを作成するリクエストを送信すると、Function Computeはトリガー設定に基づいてEventBridgeにイベントストリームリソースを自動的に作成します。
トリガーの作成後、Function Computeコンソールでトリガーに関する情報を表示できます。 EventBridgeコンソールで、作成されたリソースに関する情報を表示することもできます。 メッセージがApsaraMQ for MQTTにエンキューされると、function Computeでの関数の実行がトリガーされます。 1つ以上のメッセージイベントが、バッチ設定に基づいてバッチで関数にプッシュされます。
始める前に
EventBridge
Function Compute
ApsaraMQ for MQTT
制限事項
トリガーソースとして使用されるApsaraMQ for MQTTインスタンスは、function Computeの関数と同じリージョンにある必要があります。
イベントストリームの数が上限を超えると、ApsaraMQ for MQTTトリガーを作成できなくなります。 イベントストリームの上限については、「制限」をご参照ください。
手順1: ApsaraMQ for MQTTトリガーの作成
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、目的のサービスをクリックします。
[関数] ページで、目的の関数の名前をクリックします。
関数の詳細ページで、[トリガー] タブをクリックし、[バージョン] または [エイリアス] ドロップダウンリストからバージョンまたはエイリアスを選択し、[トリガーの作成] をクリックします。
[トリガーの作成] パネルでパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
例
トリガータイプ
[ApsaraMQ for MQTT] を選択します。
ApsaraMQ for MQTT
名前
トリガー名を入力します。
mqtt-trigger
バージョンまたはエイリアス
デフォルト値はLATESTです。 別のバージョンまたはエイリアスのトリガーを作成する場合は、関数の詳細ページの右上隅にあるバージョンまたはエイリアスのトリガーに切り替えます。 バージョンとエイリアスの詳細については、「バージョンの管理」および「エイリアスの管理」をご参照ください。
LATEST
ApsaraMQ for MQTTインスタンス
ApsaraMQ for MQTTインスタンスを選択します。
mqtt-xxx
MQTTトピック
ApsaraMQ for MQTTトピックを選択します。
testTopic
呼び出しメソッド
関数を呼び出すメソッドを選択します。
オプション:
同期呼び出し
トリガー状態
トリガーの作成直後に有効にするかどうかを指定します。 デフォルトでは、Enable Triggerが選択され、作成後すぐにトリガーが有効になります。
トリガーの有効化
プッシュ設定、再試行ポリシー、無効キューなどの高度な設定の詳細については、「トリガーの高度な機能」をご参照ください。
トリガーは、作成後に [トリガー] タブに表示されます。 作成したトリガーを変更または削除するには、「トリガーの管理」をご参照ください。
ステップ2: 関数の入力パラメータを設定する
ApsaraMQ for MQTTイベントソースは、入力パラメーターとして機能するeventの形式で関数に渡されます。 手動でイベントを関数に渡して、関数をトリガーできます。
機能の詳細ページで、[コード] タブをクリックし、アイコンをクリックします。 表示されるドロップダウンリストから、[テストパラメーターの設定] を選択します。
[テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、[イベント名] とイベントの内容を指定します。 次に、[OK] をクリックします。
eventのサンプルコード:
[ { "props": { "firstTopic": "testTopic", "secondTopic": "/testMq4****", "clientId": "consumerGroupID@@@xxx" }, "body": "hello mq4Iot pub sub msg" } ]
イベントに含まれるパラメーターを次の表に示します。
パラメーター
データ型
例
説明
小道具
Map
メッセージのプロパティ。
firstTopic
String
testTopic
メッセージの送受信に使用される親トピック。
secondTopic
String
/testMq4 ****
サブトピック。
clientId
String
consumerGroupID @@@ xx
クライアントのID。
ボディ
String
こんにちはmq4Iotパブサブmsg
メッセージの内容。
ステップ3: 関数の書き込みとテスト
トリガーを作成した後、関数コードを記述し、関数をテストしてコードが正しいかどうかを確認できます。 ApsaraMQ for MQTTがメッセージを受信すると、トリガーによって自動的に関数がトリガーされます。
関数の詳細ページで、コードタブで、コードエディターに関数コードを入力し、デプロイをクリックします。
このトピックでは、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コンソールに加えて、次の方法を使用してトリガーを設定できます。
既存のトリガーを変更または削除するには、「トリガーの管理」をご参照ください。