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

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

最終更新日:Jul 24, 2024

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

概要

Function Computeコンソールでトリガーを作成するリクエストを送信すると、Function Computeは自動的に、システムイベントバスdefaultFunction name-trigger name形式のイベントルールを作成します。 トリガーの作成後、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: ディスク: ConvertToPostpaidCompleted"
        ]
    }

    呼び出しメソッド

    関数の呼び出し方法を指定します。 有効な値:

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

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

    同期呼び出し

    トリガー状態

    作成後にトリガーを有効にするかどうかを指定します。 デフォルトでは、[トリガーの有効化] が選択され、作成後にトリガーが有効になります。

    トリガーの有効化

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

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

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

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

  2. [テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、イベント名とイベント内容を入力し、[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';
    /*
    初期化機能を有効にするには
    以下のように初期化子関数を実装してください。exports.initializer = (コンテキスト、コールバック) => {
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
     // イベントパラメータを解析し、イベントを処理します。 
      callback(null, 'return result');
    } 
  2. クリックテスト機能.

関連ドキュメント

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