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

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

最終更新日:Nov 09, 2025

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

概要

Function Compute コンソールでトリガー作成リクエストを送信すると、Function Compute[デフォルト] イベントバスにイベントルールを自動的に作成します。ルール名は 関数名-トリガー名 のフォーマットになります。トリガーが作成されると、Function Compute コンソール でトリガー情報を表示できます。また、EventBridge コンソールで自動的に作成されたイベントルールを表示することもできます。指定されたタイプのイベントがイベントソースからイベントバスに配信されると、トリガーに関連付けられた関数が実行されます。

使用上の注意

  • EventBridge の Alibaba Cloud サービス用の [デフォルト] イベントバスには、最大 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"
        ]
    }

    呼び出しメソッド

    関数の呼び出しメソッドを選択します。有効な値:

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

    • [非同期呼び出し]: このメソッドは、スケジューリングのレイテンシーが長い関数に適しています。イベントが関数をトリガーすると、Function Compute はすぐにレスポンスを返し、関数が少なくとも 1 回正常に実行されることを保証します。ただし、詳細な実行結果は返されません。詳細については、「概要」をご参照ください。

    同期呼び出し

    トリガーの状態

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

    トリガーを有効にする

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

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

ECS イベントは event 入力パラメーターとして関数に渡されます。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 パラメーターのコンテンツフォーマット。datacontenttype パラメーターは application/json フォーマットのみをサポートします。

    aliyunaccountid

    String

    123456789098****

    Alibaba Cloud アカウントの ID。

    data

    Struct

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

    イベントの内容。値は JSON オブジェクトです。内容は、イベントを生成するサービスによって決まります。CloudEvents には、イベント発生時にイベントプロデューサーによって提供されるコンテキストが含まれる場合があります。この情報は data パラメーターにカプセル化されます。

    subject

    String

    acs:ecs:cn-hangzhou:123456789098****:disk/d-bp11ba7acc69nkta****

    イベントの件名。

    source

    String

    acs.ecs

    イベントソース。

    type

    String

    ecs:Disk: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。

    time

    Timestamp

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

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

    aliyunregionid

    String

    cn-hangzhou

    イベントが受信されたリージョン。

    aliyunpublishaddr

    String

    172.25.XX.XX

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

ステップ 3: 関数コードの記述とテスト

ECS トリガーを作成したら、関数コードを記述してテストし、正常に動作することを確認できます。本番環境では、ECS イベントソースからのイベントが EventBridge を介して Function Compute に配信されると、トリガーは自動的に関数を実行します。

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

    次のコードは Node.js の例です。

    'use strict';
    /*
    イニシャライザ機能を有効にするには、
    次のように 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. [関数のテスト] をクリックします。

詳細情報

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