EventBridge をイベントソースとして使用して Message Queue for MQTT と Function Compute を統合すると、Message Queue for MQTT トリガーを使用して、Message Queue for MQTT に公開されたメッセージの処理をカスタマイズする関数を呼び出すことができます。このトピックでは、Function Compute コンソールで MQTT トリガーを作成し、入力パラメーターを設定し、コードを記述してテストする方法について説明します。
背景情報
Function Compute コンソールでトリガーを作成すると、Function Compute はトリガーの構成に基づいて EventBridge に イベントストリームリソースを自動的に作成します。
トリガーが作成されると、Function Compute コンソールでその詳細を表示できます。また、EventBridge コンソールで自動的に作成されたリソースを表示することもできます。Message Queue for MQTT にメッセージが到着すると、トリガーが関数を呼び出します。バッチ構成に応じて、1 つ以上のメッセージイベントがバッチで関数にプッシュされ、処理されます。
前提条件
EventBridge
Function Compute
Message Queue for MQTT
制限事項
Message Queue for MQTT インスタンスと Function Compute 関数は、同じリージョンにある必要があります。
イベントストリームの最大数に達した場合、それ以上 MQTT トリガーを作成することはできません。イベントストリームの制限事項の詳細については、「制限事項」をご参照ください。
ステップ1:MQTT トリガーの作成
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
上部のナビゲーションバーでリージョンを選択します。関数ページで、対象の関数をクリックします。
関数詳細ページで、トリガータブをクリックし、トリガーの作成をクリックします。
[トリガーの作成] パネルで、必要な情報を入力し、OK をクリックします。
パラメーター
操作
例
トリガータイプ
ApsaraMQ for MQTT エディション を選択します。
Message Queue for MQTT
名前
トリガーのカスタム名を入力します。
mqtt-trigger
バージョンまたはエイリアス
デフォルト値は LATEST です。別のバージョンまたはエイリアスのトリガーを作成する必要がある場合は、関数詳細ページの右上隅でそのバージョンまたはエイリアスに切り替えます。詳細については、「バージョンの管理」および「エイリアスの管理」をご参照ください。
LATEST
MQTT インスタンス
既存の MQTT インスタンスを選択します。
mqtt-xxx
MQTT トピック
既存の MQTT トピックを選択します。
testTopic
呼び出しメソッド
関数の呼び出しメソッドを選択します。
有効な値:
同期呼び出し
トリガーの有効化のステータス
作成直後にトリガーを有効にするかどうかを指定します。デフォルトでは、このオプションが選択されています。
トリガーを有効にする
プッシュ構成、リトライポリシー、デッドレターキューなどの詳細設定については、「トリガーの高度な機能」をご参照ください。
トリガーが作成されると、トリガータブに表示されます。トリガーを変更または削除するには、「トリガーの管理」をご参照ください。
ステップ2:関数の入力パラメーターの設定
MQTT イベントソースは、イベントの形式で入力パラメーターとして関数に渡されます。手動で イベントを関数に渡して、イベントトリガーをシミュレートできます。
「関数詳細」ページの [コード] タブで、[関数をテスト] の横にある
アイコンをクリックし、ドロップダウンリストから [テストパラメータを設定] を選択します。テストパラメーターの設定パネルで、新規テストイベントの作成または 既存のテストイベントの変更を選択し、イベント名とイベント内容を入力して、[OK] をクリックします。
イベントは次の形式です。
[ { "props": { "firstTopic": "testTopic", "secondTopic": "/testMq4****", "clientId": "consumerGroupID@@@xxx" }, "body": "hello mq4Iot pub sub msg" } ]次の表では、イベントオブジェクトのパラメーターについて説明します。
パラメーター
タイプ
例
説明
props
Map
メッセージ属性。
firstTopic
String
testTopic
メッセージの送受信に使用される親トピック。
secondTopic
String
/testMq4****
子トピック。
clientId
String
consumerGroupID@@@xx
クライアント ID。
body
String
hello mq4Iot pub sub msg
メッセージ本文。
ステップ3:関数コードの記述とテスト
トリガーを作成した後、関数コードを記述してテストし、正しく動作することを確認できます。本番環境では、Message Queue for MQTT がメッセージを受信すると、トリガーが自動的に関数を呼び出します。
関数詳細ページで、コードタブに移動します。コードエディタでコードを記述し、デプロイメントコードをクリックします。
次のサンプルコードは Node.js で記述されています。
'use strict'; /* 初期化関数機能を有効にするには、 次のように初期化関数を実装します: exports.initializer = (context, callback) => { console.log('initializing'); callback(null, ''); }; */ exports.handler = (event, context, callback) => { console.log("event: %s", event); // イベントパラメーターを解析し、イベントを処理します。 callback(null, 'return result'); }関数のテストをクリックします。
詳細情報
Function Compute コンソールに加えて、次の方法でトリガーを設定することもできます:
Serverless Devs ツールを使用してトリガーを設定します。詳細については、「Serverless Devs の共通コマンド」をご参照ください。
SDK を使用してトリガーを設定します。詳細については、「SDK」をご参照ください。
トリガーを変更または削除するには、「トリガーの管理」をご参照ください。