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

Function Compute:用語

最終更新日:Apr 02, 2026

本ページでは、Function Compute (FC) におけるコアとなる概念について説明します。内容は、FC 関数の「作成」「構成設定」「呼び出し」の 3 つのステージに沿って整理されています。

image

FC 関数は、Function Compute におけるリソースのスケジューリングおよび実行の基本単位です。各関数は、関数コードと関数構成設定で構成されます。

関数の作成

関数を作成する際には、関数タイプと実行環境を選択し、関数コードをアップロードします。作成後に、その他の構成パラメーターを調整することもできます。

ご使用のユースケースに最も適した手法を選択するためのガイドについては、「技術選定ガイド」をご参照ください。

関数タイプ

イベント関数

イベント関数は、Object Storage Service (OSS)、Kafka、Simple Log Service (SLS) などの Alibaba Cloud サービスから発生するトリガーに応答します。Function Compute が定義するインターフェイスに基づいてハンドラを記述してください。詳細については、「イベントトリガー付き関数の作成」をご参照ください。

Web 関数

Web 関数は、Flask、ThinkPHP、Express、SpringBoot などの一般的な Web フレームワークを使用し、HTTP インターフェイスを公開します。フレームワーク固有のインターフェイスに基づいてハンドラを記述してください。詳細については、「Web 関数の作成」をご参照ください。

タスク関数

タスク関数は、タスクモードで非同期リクエストを処理します。システムが各タスクのステータスを追跡し、ユーザーが手動でタスクの開始または停止を実行できます。この関数タイプは、スケジュールジョブ、音声・動画処理、バッチデータ処理などのオフラインワークロードに適しています。詳細については、「タスク関数の作成」をご参照ください。

GPU 関数

GPU 関数は、Stable Diffusion WebUI、ComfyUI、RAG、TensorRT など、GPU 加速が必要なワークロードを実行します。これらのプロジェクトはコンテナイメージとしてデプロイします。詳細については、「GPU 加速関数の作成」をご参照ください。

実行環境

実行環境は、Function Compute が関数コードをどのように実行するかを決定します。

組み込みランタイム

組み込みランタイム(別名:事前定義ランタイム)は、Function Compute プラットフォームによって事前に構成されています。Function Compute が定義するインターフェイスに基づいて関数ハンドラを記述してください。組み込みランタイムは、コールドスタート時間が最短ですが、1 つのインスタンスで複数の同時リクエストを処理することはできません。OSS、Kafka、SLS などのトリガーを用いたイベント駆動型のシナリオに最も適しています。詳細については、「Function Compute のランタイム」をご参照ください。

  • イベント (`event`):イベントデータは JSON ドキュメントとして関数に渡されます。ランタイムはこれをオブジェクトに変換し、関数ハンドラの event パラメーターに渡します。イベントが他の Alibaba Cloud サービスから発生した場合、そのフォーマットは当該サービスの仕様に従います。詳細については、「トリガーイベントの形式」をご参照ください。

  • コンテキスト (`context`):FC が関数を実行する際、コンテキストオブジェクトを関数ハンドラの contexttracing パラメーターに渡します。このオブジェクトには、呼び出し、サービス、関数、実行環境に関する情報が含まれます。詳細については、「コンテキスト」をご参照ください。

カスタムランタイム

カスタムランタイムは、Flask、ThinkPHP、Express、SpringBoot などの主要な Web フレームワークをサポートします。デプロイメントパッケージは、HTTP サーバープログラムを含む ZIP ファイルです。関数構成設定で 起動コマンド および 起動引数 を設定して HTTP サーバーを起動します。詳細については、「仕組み」をご参照ください。

カスタムイメージ

カスタムイメージ機能では、コンテナイメージを関数のデリバリーアーティファクトとして使用できます。Container Registry (ACR) へカスタムイメージをアップロードするか、サンプル画像を使用します。カスタムイメージは、GPU 関数をサポートする唯一のランタイムタイプです。詳細については、「カスタムイメージを使用した関数の作成」をご参照ください。

インスタンスタイプ

プロビジョニング済みインスタンス

プロビジョニング済みインスタンスは、プロビジョニング済みリソースプールを購入した際に GPU 関数にバインドされます。プロビジョニング済みリソースプールは GPU 関数のみで利用可能であり、月額サブスクリプション課金となります。この課金モデルにより、GPU リソースを事前に確保して安定した運用を実現できます。バインド後は、「プロビジョニング済みインスタンスの割り当て」を実行して、着信リクエストを処理します。

エラスティックインスタンス

エラスティックインスタンスは、呼び出しボリュームに応じて自動的にスケールします。トラフィック増加時に FC がインスタンスを作成し、減少時に破棄します。ゼロスケール後の最初の呼び出しでは、コールドスタート待ち時間が発生します。

エラスティックインスタンス(ライト休止状態(旧:アイドル))

最小インスタンス数を 1 以上に設定し、ライト休止状態スイッチを有効化すると、アイドル状態のインスタンスは自動的にライト休止状態に入ります。この状態では、システムが一部のインスタンスリソースをフリーズし、最低限の接続維持料金のみが課金されます。新しいリクエストが到着すると、フリーズされたリソースが復元され、インスタンスはアクティブになります。このホットスタートには、通常 2 秒以上かかり、モデルサイズに依存します。

エラスティックインスタンスがライト休止状態の課金対象となるのは、以下のシナリオです:

  • 最小インスタンス数を 1 以上に設定し、ライト休止状態スイッチを有効化した後、インスタンスがアイドル状態になった場合。

  • セッション保持のシナリオにおいて、インスタンスが接続維持期間中である場合。

  • バックグラウンドタスクのシナリオにおいて、インスタンスがバックグラウンドタスクを処理していない場合。

エラスティックインスタンス(アクティブ)

エラスティックインスタンスがアクティブ課金状態となるのは、以下のシナリオです:

  • 最小インスタンス数が未設定(デフォルト動作:アイドル時にゼロスケール)の場合、リクエストによってインスタンスが起動されたとき。

  • 最小インスタンス数が 1 以上に設定されている場合、ライト休止状態スイッチの有無にかかわらず、インスタンスがリクエスト処理のためにアクティブになったとき。

  • セッション保持のシナリオにおいて、インスタンスがリクエストを処理しているとき。

  • バックグラウンドタスクのシナリオにおいて、インスタンスがバックグラウンドタスクを処理しているとき。

最小インスタンス数

最小インスタンス数を 1 以上に設定すると、エラスティックインスタンスにおける最初のリクエストのコールドスタートが解消され、計算容量が保証されます。デフォルト値は 0 であり、これはアイドル時にインスタンスがゼロスケールすることを意味します。

WebSocket や gRPC など、セッション保持に依存するサービスでは、最小インスタンス数を 1 以上に設定することで、セッション保持スケジューリングおよび接続保持が有効になり、リアルタイムインタラクションの安定性が確保されます。

スケジュールまたはメトリックに基づくスケーリングを設定して、最小インスタンス数を動的に調整します。ピーク時やメトリックしきい値に達した際に増加させ、負荷低下時に削減することで、リソース効率を最大化します。詳細については、「インスタンススケーリング制限およびエラスティックポリシー」をご参照ください。

コールドスタートの参考情報

以下の表は、各インスタンスモデルがコールドスタート動作に与える影響をまとめたものであり、適切な手法を選択する際の参考になります:

インスタンスモデルコールドスタート動作推奨ユースケース
エラスティックインスタンス(最小数 = 0)すべてのゼロスケールイベント時にコールドスタートが発生コスト重視、遅延許容型ワークロード
エラスティックインスタンス(最小数 ≥ 1、ライト休止状態有効)休止状態からの復元時にホットスタート(通常 2 秒以上)GPU 推論、大規模モデルのロード
エラスティックインスタンス(最小数 ≥ 1、ライト休止状態無効)コールドスタートなし;インスタンスは常時アクティブ低遅延サービス、WebSocket、gRPC
プロビジョニング済みインスタンスコールドスタートなし;GPU リソースは永続的に確保一貫した可用性が求められる本番 GPU ワークロード

関数の構成設定

関数を作成した後、必要に応じて以下の構成項目を調整します。

基本構成

インスタンスタイプ

FC では、異なるリソース仕様を持つ複数のインスタンスタイプを提供しています。詳細については、「インスタンスタイプ」をご参照ください。

一時ディスク

各関数インスタンスには、インスタンスのルートディレクトリにマウントされる一時ストレージディスクが備わっています。インスタンスが再利用された場合、ディスクの内容はクリアされます。永続的なファイルストレージには、NAS ファイルシステムまたは OSS ファイルシステムをマウントしてください。

フルカード GPU インスタンス(Tesla シリーズ:16 GB、Ada シリーズ:48 GB)では、30 GB または 60 GB のディスクサイズをサポートします。その他のインスタンスタイプでは、512 MB または 10 GB をサポートします。512 MB のディスクサイズは無料です。

トリガー

OSS や SLS などの一部の Alibaba Cloud サービスは、トリガーを介して FC 関数を直接呼び出すことができます。特定のイベントが発生すると、当該サービスがイベントを FC にプッシュし、関数が即座に呼び出されます。1 つの関数には複数のトリガーを設定でき、それぞれが独立したクライアントとして機能します。FC が関数に渡す各イベントには、正確に 1 つのトリガーからのデータのみが含まれます。詳細については、「トリガーの概要」をご参照ください。

ランタイム

FC は、ランタイムを通じて複数のプログラミング言語をサポートします。ランタイムは、言語固有の実行環境を提供し、FC と関数との間で呼び出しイベント、コンテキスト情報、応答を中継します。詳細については、「ランタイムの概要」をご参照ください。

環境変数

環境変数は、関数構成設定内に文字列形式のキーと値のペアとして格納されます。各関数は、独自の独立した環境変数セットを持ちます。コードを変更せずに関数の動作を変更するには、環境変数を使用します。詳細については、「環境変数の設定」をご参照ください。

レイヤー

レイヤーは、追加のコードやその他のコンテンツ(通常はライブラリ、カスタムランタイム、データファイル、設定ファイルなど)を含む .zip ファイルです。FC では、公式パブリックレイヤー を提供しており、カスタムレイヤーの作成 もサポートしています。

レイヤーを使用する主なメリットは以下の 3 点です:

  • デプロイメントパッケージの軽量化:依存関係をレイヤーに移動することで、関数のデプロイメントパッケージサイズを縮小し、コードデプロイの速度を向上させます。

  • 関心の分離:関数コードを変更せずに依存関係を更新したり、その逆を行ったりできます。

  • 依存関係の共有:同一の依存関係を、アカウント内の任意の数の関数に 1 つのレイヤーとして追加できます。これにより、各デプロイメントパッケージに同じ依存関係を個別にバンドルする必要がなくなります。

カスタムイメージ(Custom Container) を使用する関数では、レイヤーはサポートされません。カスタムイメージを使用した関数を作成する際には、「カスタムイメージを使用した関数の作成」で、ランタイム、ライブラリ、その他の依存関係をコンテナイメージに直接パッケージ化してください。

権限

Resource Access Management (RAM) ロールを関数に割り当てることで、他の Alibaba Cloud サービスへのアクセス権限を付与できます。FC は RAM ロールを使用して一時認証情報を生成し、それを関数コードに渡します。詳細については、「関数ロールを使用した他 Alibaba Cloud サービスへのアクセス権限の付与」をご参照ください。

ログ

FC は Simple Log Service (SLS) と統合されています。ログ機能を構成設定すると、FC が自動的に関数ログを収集し、指定された Logstore に配信します。詳細については、「ログ機能の設定」をご参照ください。

ネットワーク

デフォルトでは、関数はインターネットにアクセスできますが、Virtual Private Cloud (VPC) 内のリソースにはアクセスできません。VPC リソースへのアクセスや、特定の VPC からの関数呼び出しを許可するには、当該関数のネットワーク設定および権限を構成設定します。詳細については、「ネットワーク設定の構成」をご参照ください。

ストレージ

FC では、Apsara File Storage NAS ファイルシステムおよび OSS バケットのマウントをサポートしています。詳細については、「NAS ファイルシステムの構成設定」および「OSS アクセスの構成設定」をご参照ください。

非同期構成設定

FC は非同期リクエストをタスクモードで実行します。タスクモードでは、システムが各タスクの実行ステータスを各段階で記録し、タスクステータスの照会、タスクキューのメトリック、タスクの重複排除、タスクの強制終了といった機能を提供します。

非同期タスクモードは、長時間実行されるワークロードに適しています。ただし、遅延の影響を受けやすい処理(応答時間が 100 ms 未満)や、1 秒間に数千件以上ものタスクを継続的に送信するワークロードには不向きです。詳細については、「非同期呼び出し」をご参照ください。

ライフサイクル

関数インスタンスは、リアルタイムのリクエストボリュームに応じて動的に作成および破棄されます。各関数インスタンスは、「Creating(作成中)」「Invoke(呼び出し中)」「Destroy(破棄中)」の 3 つのライフサイクルステージを経ます。詳細については、「インスタンスライフサイクルフックの構成設定」をご参照ください。

ヘルスチェック

FC は、Web 関数および GPU 関数のインスタンスに対して定期的なヘルスチェックをサポートしています。ヘルスチェックにより、不健全なインスタンスへのリクエストのルーティングを防止し、リクエスト失敗を低減します。詳細については、「インスタンスのヘルスチェックの構成設定」をご参照ください。

DNS

カスタム DNS 機能は、サイトアクセスを高速化します。この機能は、組み込みランタイムおよびカスタムランタイムでのみサポートされます。詳細については、「カスタム DNS の構成設定」をご参照ください。

カスタムドメイン名

関数またはアプリケーションにカスタムドメイン名をバインドすることで、安定した URL を通じてアクセスできるようになります。また、カスタムドメイン名を CDN 加速ドメインのオリジンとして使用することで、ユーザーのアクセス遅延を低減できます。詳細については、「カスタムドメイン名の構成設定」をご参照ください。

関数の呼び出し

FC 関数をデプロイした後、以下のように複数の方法で呼び出すことができます:Function Compute コンソールを使用してサンプルイベントでテストする、SDK または API を介して呼び出す、関数 URL(HTTP または HTTPS エンドポイント)を使用する、またはイベントソースからトリガーする。以降のセクションでは、関数呼び出しに関連する概念について説明します。

同期呼び出し

FC はイベントを処理し、結果を即座に返します。詳細については、「同期呼び出し」をご参照ください。

非同期呼び出し

FC はイベントを受け入れ、バックグラウンドタスクの完了を待たずに即座に応答を返します。システムはイベントを確実に処理しますが、具体的な呼び出しの詳細や関数実行ステータスは返しません。非同期呼び出しの結果を取得するには、非同期呼び出しの送信先を構成設定します。詳細については、「機能の概要」をご参照ください。

呼び出し分析

呼び出し分析機能は、リクエスト単位での実行ステータスを要約します。この機能を有効化すると、FC が各関数実行のメトリック情報を収集します。詳細については、「リクエスト単位のメトリックログ」をご参照ください。

最大インスタンス数

最大インスタンス数は、関数が同時に実行できるインスタンス数の上限を制限します。デフォルトの上限は、Alibaba Cloud アカウントあたり、リージョンあたり 100 インスタンスです。実際の上限は、クォータセンター に表示されます。上限を引き上げるには、クォータセンター から申請を行ってください。

インスタンスあたりの同時実行数

インスタンスあたりの同時実行数とは、1 つのインスタンスが同時に処理できるリクエスト数です。カスタムランタイムまたはコンテナイメージを使用して関数を作成する場合、インスタンスあたりの同時実行数を設定することで、実行時間を短縮し、必要なインスタンス総数を削減し、リソース利用率を向上させることができます。詳細については、「同時実行数の構成設定」をご参照ください。

その他の概念

バージョン

バージョンの公開は、現在の関数コードおよび構成設定を不変のベースラインとして保存します。このベースラインには、トリガー、非同期タスク構成設定、エラスティックポリシーなどのリソースプロパティは含まれません。バージョンは、git commit に類似しており、ある時点におけるコードおよび構成設定のスナップショットを捉えます。詳細については、「バージョン管理」をご参照ください。

エイリアス

エイリアスは、特定の関数バージョンを指すポインターです。関数がエイリアスを介して呼び出された場合、FC はそのエイリアスを対象のバージョンに透明に解決します。呼び出し側は、エイリアスがどのバージョンを指しているかを知る必要はありません。エイリアスは、カナリアリリース、ロールバック、段階的デプロイメントの実装に使用できます。エイリアスは、リリース用にコミットをマークする git tag に類似しています。詳細については、「エイリアス管理」をご参照ください。

タグ

タグは、関数リソースを検索および集約しやすくするために分類するものです。タグを使用して関数をグループ化し、各グループに対して異なる役割に異なる運用権限を割り当てることができます。詳細については、「タグの構成設定」をご参照ください。