EventBridgeを使用してApsaraMQ for MQTTをFunction Computeと統合した後、ApsaraMQ for MQTTトリガーを使用して関数を呼び出すことができます。 これにより、ビジネス要件に基づいてApsaraMQ for MQTTに発行されるメッセージを処理する関数を呼び出すことができます。 このトピックでは、Function ComputeコンソールでApsaraMQ for MQTTトリガーの作成、関数の入力パラメーターの設定、および関数コードの書き込みとテストの方法について説明します。
背景情報
Function Computeコンソールでトリガーを作成するリクエストを送信すると、Function Computeはトリガーの設定に基づいてEventBridgeにイベントストリームを自動的に作成します。
トリガーの作成後、Function Computeコンソールでトリガーに関する情報を表示できます。 EventBridgeコンソールで、作成されたリソースに関する情報を表示することもできます。 メッセージがApsaraMQ for MQTTでキューに入れられると、function Computeの関連する関数が呼び出されます。 1つ以上のメッセージイベントがバッチで関数にプッシュされ、バッチ設定に基づいて処理されます。
前提条件
EventBridge
EventBridgeがアクティブ化され、必要な権限がResource Access Management (RAM) ユーザーに付与されます。 詳細については、「EventBridgeの有効化とRAMユーザーへの権限付与」をご参照ください。
Function Compute
関数が作成されます。 詳細については、「関数の管理」トピックの関数の作成セクションをご参照ください。
ApsaraMQ for MQTT
ApsaraMQ for MQTTインスタンスが作成されました。 詳細については、「クイックスタート」トピックのステップ1: リソースの作成セクションを参照してください。
トピックが作成されます。 詳細については、「トピックの管理」トピックのトピックの作成セクションをご参照ください。
使用上の注意
トリガーソースとして機能する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
呼び出しメソッド
関数が呼び出されるモード。
有効な値:
Sync Invocation (デフォルト): イベントが関数を呼び出した後、function Computeは関数の呼び出しが完了するのを待ってから応答を返します。 詳細については、「」をご参照ください。
非同期呼び出し: イベントが関数を呼び出した後、function Computeはすぐに応答を返し、関数が少なくとも1回正常に実行されるようにします。 ただし、詳細な結果は返されません。 このモードは、スケジューリング遅延が大きい関数に適しています。 詳細については、「概要」をご参照ください。
同期呼び出し
トリガー状態
作成直後にトリガーを有効にするかどうかを指定します。 デフォルトでは、Enable Triggerが選択されています。 トリガーは作成後すぐに有効になります。
トリガーの有効化
プッシュ設定、再試行ポリシー、デットレターキューなどの高度な設定の詳細については、「」をご参照ください。
トリガーは、作成後に [トリガー] タブに表示されます。 作成したトリガーを変更または削除する方法の詳細については、「トリガーの管理」をご参照ください。
ステップ2: 関数の入力パラメータを設定する
ApsaraMQ for MQTTイベントは、function Computeの関数を呼び出すために使用されます。 イベントのパラメーターは、関数の入力パラメーターとして使用されます。 イベントのパラメーターを手動で渡して、関数をテストとして呼び出すことができます。
関数の詳細ページの [コード] タブで、[テスト関数] の隣のアイコンをクリックし、ドロップダウンリストから [テストパラメーターの設定] を選択します。
[テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、イベント名とイベント内容を入力し、[OK] をクリックします。
次のサンプルコードは、イベントコンテンツの形式の例を示しています。
[ { "props": { "firstTopic": "testTopic", "secondTopic": "/testMq4****", "clientId": "consumerGroupID@@@xxx" }, "body": "hello mq4Iot pub sub msg" } ]
イベントのパラメーターを次の表に示します。
パラメーター
データ型
例
説明
props
地図
メッセージの属性。
firstTopic
String
testTopic
メッセージの送受信に使用される親トピック。
secondTopic
String
/testMq4 ****
子トピック。
clientId
String
consumerGroupID @@@ xx
クライアント ID。
body
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コンソールに加えて、次のいずれかの方法を使用してトリガーを設定できます。
SDKを使用してトリガーを設定します。 詳細は、SDK をご参照ください。
既存のトリガーを変更または削除するには、「トリガーの管理」をご参照ください。