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

Function Compute:DataHub一方向トリガー

最終更新日:Sep 09, 2024

Function Computeは、DataHubをトリガーソースとしてサポートしています。 DataHubは、Alibaba Cloudのデータストリーミングサービスです。 Function Computeコネクタが作成されたDataHubにリクエストが到着すると、DataHubは関数の実行をトリガーします。 関数の実行後、function Computeは実行結果をDataHubに返します。 このトピックでは、入力パラメーターの設定、関数コードの記述、関数のテストなど、関数の実行をトリガーするようにDataHubを設定する方法について説明します。

前提条件

制限事項

DataHubは一方向のトリガーです。 イベントソースでのみトリガーを設定できます。 次の操作を実行します。

DataHub コンソールにログインします。 [プロジェクト] ページで、目的のプロジェクトの名前をクリックして、プロジェクトの詳細ページに移動します。 表示される [トピックの作成] パネルで、トピックを作成するためのパラメーターを設定します。 トピックが作成されたら、[トピックリスト] タブに移動し、作成したトピックの名前をクリックします。 sc_create_topic_for_datahub_trigger

表示されるトピックの詳細ページで、右上隅の [+ コネクタ] をクリックします。 データをFunction Computeに同期するためのFunction Computeコネクタを作成します。 その後、DataHubデータをFunction Computeで使用できます。

sc_datahub_trigger

ステップ1: 関数の入力パラメータを設定する

DataHubが関数の実行をトリガーすると、イベントパラメーターを使用して、同期された情報が関数に送信されます。 DataHubによって渡されたイベントパラメーターを使用して、関数コードが正しいかどうかをテストできます。

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

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

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

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

  5. [テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、[イベント名] とイベントの内容を指定します。 パラメーターを指定したら、[OK] をクリックします。

    次のサンプルコードは、イベントの例を示しています。詳細については、「Function Computeへのデータの同期」の「イベントのデータ構造」セクションをご参照ください。

    {
      "eventSource": "acs:datahub",
      "eventName": "acs:datahub:putRecord",
      "eventSourceARN": "/projects/test_project_name/topics/test_topic_name",
      "region": "cn-hangzhou",
      "records": [
        {
          "eventId": "0:12345",
          "systemTime": 1463000123000,
          "data": "[\"col1's value\",\"col2's value\"]"
        },
        {
          "eventId": "0:12346",
          "systemTime": 1463000156000,
          "data": "[\"col1's value\",\"col2's value\"]"
        }
      ]
    }

ステップ2: 関数コードを記述し、関数をテストする

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

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

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

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

    この例では、関数コードはPython 3.6で記述されています。

    # -*- coding: utf-8 -*-
    import logging
    import json
    
    # To enable the initializer feature
    # please implement the initializer function as below:
    # def initializer(context):
    #   logger = logging.getLogger()
    #   logger.info('initializing')
    
    def handler(event, context):
      logger = logging.getLogger()
      logger.info('hello world')
      # parse and handle event here
      # evt = json.loads(event) 
      logger.info(event)
      return 'hello world'
  5. コードタブをクリックし、テスト機能をクリックします。

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