すべてのプロダクト
Search
ドキュメントセンター

Function Compute:ApsaraMQ for MQTTトリガー

最終更新日:Sep 09, 2024

EventBridgeを使用してApsaraMQ for MQTTFunction 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つ以上のメッセージイベントが、バッチ設定に基づいてバッチで関数にプッシュされます。

始める前に

制限事項

  • トリガーソースとして使用されるApsaraMQ for MQTTインスタンスは、function Computeの関数と同じリージョンにある必要があります。

  • イベントストリームの数が上限を超えると、ApsaraMQ for MQTTトリガーを作成できなくなります。 イベントストリームの上限については、「制限」をご参照ください。

手順1: ApsaraMQ for MQTTトリガーの作成

  1. Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、目的のサービスをクリックします。

  3. [関数] ページで、目的の関数の名前をクリックします。

  4. 関数の詳細ページで、[トリガー] タブをクリックし、[バージョン] または [エイリアス] ドロップダウンリストからバージョンまたはエイリアスを選択し、[トリガーの作成] をクリックします。

  5. [トリガーの作成] パネルでパラメーターを設定し、[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イベントソースは、入力パラメーターとして機能するeventの形式で関数に渡されます。 手動でイベントを関数に渡して、関数をトリガーできます。

  1. 機能の詳細ページで、[コード] タブをクリックし、xialatubiaoアイコンをクリックします。 表示されるドロップダウンリストから、[テストパラメーターの設定] を選択します。

  2. [テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、[イベント名] とイベントの内容を指定します。 次に、[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がメッセージを受信すると、トリガーによって自動的に関数がトリガーされます。

  1. 関数の詳細ページで、コードタブで、コードエディターに関数コードを入力し、デプロイをクリックします。

    このトピックでは、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');
    }
  2. コードタブで、テスト機能をクリックします。

    関数の実行後、[コード] タブで結果を表示できます。

追加情報

Function Computeコンソールに加えて、次の方法を使用してトリガーを設定できます。

  • Serverless Devsを使用してトリガーを設定します。 詳細については、「トリガーの作成」をご参照ください。

  • SDKを使用してトリガーを設定します。 詳細は、SDK をご参照ください。

既存のトリガーを変更または削除するには、「トリガーの管理」をご参照ください。