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

Function Compute:Alibaba Cloudサービスのイベントトリガーの設定

最終更新日:Sep 09, 2024

Alibaba Cloudサービスのイベントトリガーを使用すると、Alibaba Cloudサービスのイベントを使用して関数の実行をトリガーできます。 これらのイベントには、CloudMonitorイベント、監査イベント、Elastic Compute Service (ECS) イベント、Alibaba Cloud IoTイベント、および特定のクラウドサービスからのO&Mイベントが含まれます。 このトピックでは、function ComputeコンソールでECSトリガーを作成し、関数入力パラメーターを設定し、コードを記述してテストする方法について説明します。

概要

でトリガーを作成するリクエストを送信した後、Function Computeコンソール,Function Computeという名前のイベントルールを自動的に作成します。サービス名-関数名-トリガー名システムイベントバスの形式デフォルト. トリガーの作成後、Function Computeコンソールでトリガーに関する情報を表示できます。 EventBridgeコンソールで、作成されたイベントルールに関する情報を表示することもできます。 イベントソースで指定された種類のイベントがイベントバスに配信されると、トリガーに関連付けられている関数が1回実行されます。

注意事項

  • EventBridgeのバスデフォルトでも、システムに最大10個のイベントルールを作成できます。 上限に達すると、Alibaba Cloudサービスのイベントトリガーを作成できなくなります。

  • Serverless Devsを使用してAlibaba Cloudサービスのイベントトリガーを作成することはできません。

始める前に

ステップ1: トリガーを作成する

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

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

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

  4. [トリガーの作成] パネルで、関連パラメーターを指定します。 パラメーターを指定したら、[OK] をクリックします。

    パラメーター

    説明

    トリガータイプ

    ドロップダウンリストから [Elastic Compute Service (ECS)] を選択します。

    Elastic Compute Service (ECS)

    名前

    カスタムトリガー名を入力します。

    ecs-trigger

    バージョンまたはエイリアス

    デフォルト値はLATESTです。 別のバージョンまたはエイリアスのトリガーを作成する場合は、関数の詳細ページの右上隅で、指定したバージョンまたはエイリアスに切り替えます。 サービスのバージョンとエイリアスの詳細については、「バージョンの管理」および「エイリアスの管理」をご参照ください。

    LATEST

    イベントタイプの意味

    [カスタムイベントタイプ] または [すべてのイベントタイプを選択] を選択します。 [カスタムイベントタイプ] を選択した場合、ECSの1つ以上のイベントタイプを選択できます。

    ディスク保持

    イベントパターンの内容

    [イベントタイプ] パラメーターを設定すると、イベントパターンの内容が自動的に入力されます。 コンテンツは変更できません。 イベントパターンの詳細については、「イベントパターン」をご参照ください。

    {
        "source": [
            "acs.ecs"
        ],
        "type": [
            "ecs:Disk:ConvertToPostpaidCompleted"
        ]
    }

    呼び出しメソッド

    関数呼び出しメソッド。The function invocation method. 有効な値:

    • 同期呼び出し: イベントが関数の実行をトリガーした後、function Computeは実行が完了すると結果を返します。 デフォルト値です。 詳細については、「同期呼び出し」をご参照ください。

    • 非同期呼び出し: イベントが関数の実行をトリガーした後、function Computeはすぐに応答を返し、関数が少なくとも1回正常に実行されるようにします。 ただし、詳細な実行結果は返されません。 この呼び出し方法は、スケジューリング遅延が大きい関数に適しています。 詳細については、「概要」をご参照ください。

    同期呼び出し

    トリガーが作成されると、[トリガー] タブに表示されます。 既存のトリガーを変更または削除するには、「トリガーの管理」をご参照ください。

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

ECSイベントソースは、入力パラメーターとして機能するeventの形式で関数に渡されます。 手動でイベントを関数に渡して、関数をトリガーできます。

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

  2. Configure Test Parametersパネルで、Create New Test EventまたはModify Existing Test Eventタブをクリックし、Event Nameとイベントの内容を指定します。 パラメーターを指定したら、[OK] をクリックします。

    eventのサンプルコード: Alibaba Cloudサービスでサポートされているイベントの詳細については、「Alibaba Cloudサービスイベントソース」をご参照ください。

    {
        "datacontenttype": "application/json;charset=utf-8",
        "aliyunaccountid": "123456789098****",
        "data": {
            "result": "accomplished",
            "diskId": "d-bp11ba7acc69nkta****"
        },
        "subject": "acs:ecs:cn-hangzhou:123456789098****:disk/d-bp11ba7acc69nkta****",
        "source": "acs.ecs",
        "type": "ecs:Disk:ConvertToPostpaidCompleted",
        "aliyunpublishtime": "2021-01-18T03:58:31.762Z",
        "specversion": "1.0",
        "aliyuneventbusname": "default",
        "id": "70c0414c-b260-4923-b584-1d6e5646****",
        "time": "2021-01-18T11:58:31.125+08:00",
        "aliyunregionid": "cn-hangzhou",
        "aliyunpublishaddr": "172.25.XX.XX"
    }

    イベントに含まれるパラメーターを次の表に示します。

    パラメーター

    データ型

    説明

    datacontenttype

    String

    application/json;charset=utf-8

    dataパラメーターのコンテンツタイプ。 application/jsonコンテンツタイプのみがサポートされています。

    aliyunaccountid

    String

    123456789098 ****

    Alibaba Cloud アカウントの ID です。

    データ

    Struct

    {
            "result": "accomplished",
            "diskId": "d-bp11ba7acc69nkta****"
    }

    イベントの内容。 値はJSONオブジェクトで、イベントを生成するイベントソースによって決定されます。 CloudEventsは、イベントが発生したときにイベントプロデューサーによって与えられるコンテキストを含むことができる。 この情報は、dataパラメータにカプセル化される。

    件名

    String

    acs:ecs:cn-hangzhou:123456789098 ****: ディスク /d-bp11ba7acc69nkta ****

    イベントの件名。

    ソース

    String

    acs.ecs

    イベントの発生源。

    タイプ

    String

    ecs: ディスク: ConvertToPostpaidCompleted

    イベントのタイプ。

    aliyunpublishtime

    Timestamp

    2021-01-18T03:58:31.762Z

    イベントが受信された時刻。

    specversion

    String

    1.0

    CloudEvents仕様のバージョン。

    aliyuneventbusname

    String

    default

    イベントを受信するイベントバスの名前。

    id

    String

    70c0414c-b260-4923-b584-1d6e5646 ****

    イベントの ID。

    時間

    Timestamp

    2021-01-18T11:58:31.125 + 08:00

    イベントが発生した時刻。

    aliyunregionid

    String

    cn-hangzhou

    イベントが受信された地域。

    aliyunpublishaddr

    String

    172.25.XX.XX

    イベントを受信するサーバーのIPアドレス。

ステップ3: 関数の書き込みとテスト

ECSトリガーを作成した後、関数コードを記述し、関数をテストして、コードが正しいかどうかを確認できます。 ECSイベントソースによって生成されたイベントがEventBridgeからFunction Computeに配信されると、関数の実行が自動的にトリガーされます。

  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. コードタブをクリックし、テスト機能 をクリックします。

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

追加情報

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