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

Function Compute:関数タイプの選択

最終更新日:Aug 29, 2024

さまざまなシナリオでビジネス要件を満たすために、Function Computeにはイベント関数とHTTP関数の2種類の関数が用意されています。 このトピックでは、Function Computeの2種類の関数のシナリオと違いについて説明します。

比較

Function Computeは、イベント関数とHTTP関数の2種類の関数をサポートしています。

  • イベント関数は、イベントを使用してイベント駆動モデルの関数を呼び出すシナリオに適しています。

  • HTTP関数は、webアプリケーションの迅速な構築などのシナリオに適しています。

Function Computeのプログラミングモデルでは、ハンドラーのモデルは、関数名、関数入力パラメーター、および応答の3つの部分で構成されています。 コードで定義されている別の関数を入力パラメーターとしてハンドラーに渡すこともできます。

次の表に、トリガーメソッドと入力パラメーターに関するイベント関数とHTTP関数の違いを示します。

関数タイプ

トリガーメソッド

入力パラメータ

イベント機能

イベント関数の実行をトリガーして、特定の機能を実装できます。 イベント機能をトリガーするには、タイマーの設定、API操作の呼び出し、SDKの使用、または他のAlibaba Cloudサービスのトリガーを使用します。 Object Storage Service (OSS) トリガー、Log Serviceトリガー、Alibaba Cloud CDNトリガー、Tablestoreトリガー、EventBridgeトリガーなど、HTTPトリガー以外のさまざまなトリガーを作成できます。 サポートされているトリガータイプの詳細については、「トリガーの概要」をご参照ください。 サポートされているすべてのタイプのトリガーを使用してイベント関数をトリガーできます。

次のコードは、単純なNode.jsハンドラーを定義します。

exports.handler = function(event, context, callback) {
  callback(null, 'hello world');
}

入力パラメーターに関する説明を表示するには、展開します。

入力パラメータ

説明

イベント

ハンドラーを呼び出すために渡されるイベントデータ。 ビジネス要件に基づいて、ハンドラーでデータを対応するデータ型に変換できます。

コンテキスト

Function Computeによって定義された入力パラメーターの構造は、Function Computeによって設計されており、リクエストIDや一時キーなど、関数のランタイムに関する情報が含まれています。

コールバック

呼び出し結果を返すための入力パラメーターとしてFunction Computeによって定義されているコールバックパラメーター。

Node.jsイベント関数の詳細については、「イベントハンドラー」をご参照ください。 他のプログラミング言語の関数の入力パラメーターの詳細については、「概要」をご参照ください。

HTTP 関数

HTTP関数は、HTTPまたはHTTPSリクエストによってのみトリガーできます。 ビジネス要件に基づいて、GET、POST、PUT、DELETE、HEAD、PATCHなど、HTTP関数をトリガーできるリクエストメソッドを指定できます。

Function Computeでは、HTTPまたはHTTPSリクエストを送信してHTTP関数をトリガーするHTTPトリガーを作成できます。 サービスの1つのバージョンまたは1つのエイリアスに対して作成できるHTTPトリガーは1つだけです。 詳細については、「概要」をご参照ください。

次のコードは、単純なNode.jsハンドラーを定義します。

exports.handler = function(request, response, context) {
  response.send(null, 'hello world');
}

入力パラメーターに関する説明を表示するには、展開します。

入力パラメータ

説明

リクエスト

リクエストボディ。キーと値のペアで構成されるHTTPリクエストヘッダー、リクエストメソッド、およびクライアントのIPアドレスを含みます。

応答

キーと値のペアで構成されるHTTPレスポンスヘッダーとHTTPレスポンス本文を含むレスポンス。

コンテキスト

Function Computeによって定義された入力パラメーターの構造は、Function Computeによって設計されており、リクエストIDや一時キーなど、関数のランタイムに関する情報が含まれています。

Node.js HTTP関数の詳細については、「HTTPハンドラー」をご参照ください。 他のプログラミング言語の関数の入力パラメーターの詳細については、「概要」をご参照ください。