supports two types of functions: event functions and HTTP functions. イベント関数は、対応するイベントに基づいて関数が実行されるイベント駆動型モデルに適用されます。 HTTP関数は、webアプリケーションをすばやく構築するのに適しています。 このトピックでは、トリガーメソッドと入力パラメーターの観点から、イベント関数とHTTP関数の違いについて説明します。
イベント機能
Trigger method
イベント関数の実行をトリガーして、特定の機能を実装できます。 イベント関数の実行をトリガーするには、タイマーを設定したり、API操作を呼び出したり、SDKを使用したり、他のAlibaba Cloudサービスと統合されたトリガーを使用したりできます。 You can create various triggers other than HTTP triggers, such as an Object Storage Service (OSS) trigger, a Log Service trigger, an Alibaba Cloud CDN trigger, a Tablestore trigger, and an EventBridge trigger. サポートされるトリガータイプの詳細については、「トリガーの作成」をご参照ください。 サポートされているすべてのタイプのトリガーを使用してイベント関数をトリガーできます。
入力パラメーター
A handler function must comply with the programming model provided by and consists of a function name, input parameters, and return values. コードで定義されている別の関数を入力パラメーターとしてハンドラー関数に渡すこともできます。
The following code defines a simple Node.js handler function:
exports.handler = function(event, context, callback) {
callback(null, 'hello world');
}
The following table describes the input parameters of the handler function.
入力パラメーター | 説明 |
---|---|
event | ハンドラ関数を呼び出すために渡されるイベントデータ。 必要に応じて、ハンドラ関数でデータを対応するデータ型に変換できます。 |
context | The function input parameter defined by . このパラメーターのデータ構造は、によって定義され、リクエストIDや一時的なAccessKeyペアなど、ハンドラー関数に関するランタイム情報が含まれます。 |
callback | function Computeによってハンドラ関数の入力パラメーターとして定義されたコールバック関数。 コールバック関数は、ハンドラ関数の呼び出し結果を返すために使用されます。 |
Node.jsイベント関数の詳細については、「t1880972.html#concept_2259872」をご参照ください。 For more information about the input parameters of functions in other programming languages, see Overview.
HTTP 関数
トリガーメソッド
HTTP関数は、HTTPまたはHTTPSリクエストによってのみトリガーできます。 GET、POST、PUT、DELETE、HEAD、PATCHなど、必要に応じてリクエストメソッドを指定できます。
Function Compute allows you to create an HTTP trigger that triggers the execution of a specific HTTP function by sending HTTP or HTTPS requests. HTTP関数の1つのバージョンまたは1つのエイリアスに対して作成できるHTTPトリガーは1つだけです。 詳細については、「HTTP トリガー」をご参照ください。
入力パラメーター
ハンドラ関数は、が提供するプログラミングモデルに準拠している必要があり、関数名、入力パラメーター、および戻り値で構成されます。 コードで定義されている別の関数を入力パラメーターとしてハンドラー関数に渡すこともできます。
次のコードは、単純なNode.jsハンドラ関数を定義します。
exports.handler = function(request, response, context) {
response.send(null, 'hello world');
}
次の表に、ハンドラ関数の入力パラメーターを示します。
入力パラメーター | 説明 |
---|---|
request | リクエストボディ。キーと値のペアで構成されるHTTPリクエストヘッダー、リクエストメソッド、およびクライアントのIPアドレスを含みます。 |
response | キーと値のペアで構成されるHTTPレスポンスヘッダーとHTTPレスポンス本文を含むレスポンス。 |
context | The function input parameter defined by . このパラメーターのデータ構造は、によって定義され、リクエストIDや一時的なAccessKeyペアなど、HTTP関数に関するランタイム情報が含まれます。 |
Node.js HTTP関数の詳細については、「Node.js ハンドラ」をご参照ください。 他のプログラミング言語の関数の入力パラメーターの詳細については、「概要」をご参照ください。