さまざまなシナリオにおけるユーザーニーズに対応するため、Function Compute は、イベント関数、Web 関数、タスク関数、GPU 関数の 4 種類の関数を用意しています。このトピックでは、Function Compute がサポートする関数の種類の適用可能なシナリオと相違点について説明し、技術選択を支援します。
選択の概要
Function Compute を使用する場合、ビジネスシナリオと技術スタックのプリファレンスに基づいて、適切な関数の種類とランタイム環境を選択できます。
Web アプリケーションおよび API サービスの場合は、Web 関数と [カスタムランタイム] を組み合わせて使用できます。この関数は、さまざまな一般的な Web アプリケーションフレームワークをサポートしており、ブラウザからアクセスしたり、URL によって直接呼び出したりできます。
ファイル処理や データストリーム処理などのシナリオでは、イベント関数と [組み込みランタイム] を組み合わせて使用することをお勧めします。イベントトリガーを設定し、Object Storage Service、ApsaraMQ for RocketMQ、Simple Log Service などのさまざまな Alibaba Cloud プロダクトを統合できます。
チャットボットや テキストから画像への変換などのモデル推論シナリオでは、GPU 関数と [カスタムイメージ] を組み合わせて使用できます。ComfyUI、RAG、TensorRT などの人気のある AI プロジェクトのコンテナイメージに基づいて、AI モデル推論サービスを迅速に構築できます。
非同期タスクなどの スケジュールされたタスクや オーディオおよびビデオのトランスコードのシナリオでは、タスク関数と [組み込みランタイム] を組み合わせて使用することをお勧めします。
関数の種類とランタイム環境の詳細については、以下の表を参照してください。
[組み込みランタイム] と [カスタムランタイム] はどちらも、コードパッケージの形式で関数にデプロイされます。コンテナ化されたデプロイが必要な場合は、ランタイム環境として [カスタムイメージ] を選択することもできます。
[GPU 関数] は、ランタイム環境として [カスタムイメージ] の使用のみをサポートしています。
選択の分析
関数の種類の選択
比較項目 | [イベント関数] | [Web 関数] | [タスク関数] | [GPU 関数] |
機能 | OSS トリガー、Kafka トリガー、SLS トリガー など、さまざまなクラウドプロダクトからのイベントによってトリガーされる、ファイルとデータストリームの処理に使用されます。 | 一般的な Web アプリケーションフレームワークをサポートし、ブラウザからアクセスしたり、URL を使用して呼び出したりできます。 | 非同期リクエストの処理に使用され、各フェーズでの非同期呼び出しの状態を追跡および保存できます。 | Stable Diffusion WebUI、ComfyUI、RAG、TensorRT などの人気のある AI プロジェクトのコンテナイメージをサポートし、AI モデル推論サービスを迅速に構築できます。 |
適用可能なシナリオ |
|
|
|
|
ランタイム環境 | 組み込みランタイムの使用をお勧めします | カスタムランタイムの使用をお勧めします | 組み込みランタイムの使用をお勧めします | カスタムイメージのみをサポート |
デフォルトで無効 | デフォルトで無効 | デフォルトで有効 | デフォルトで無効 |
既存の関数で非同期タスクを有効にする必要がある場合は、タスクの管理の手順に従ってください。
関数のランタイム環境の選択
比較項目 | 組み込みランタイム | カスタムランタイム | カスタムイメージ |
開発ワークフロー | Function Compute によって定義されたインターフェイスに基づいてハンドラを作成します。 | フレームワークテンプレートに基づいて Web アプリケーションを開発し、パブリックエンドポイントを介してリアルタイムで結果を確認します。 | カスタムイメージを Alibaba Cloud Container Registry にアップロードするか、Container Registry ですでに利用可能なイメージを使用します。 |
サポートされている インスタンスタイプ | CPU インスタンス | CPU インスタンス | CPU インスタンスと GPU インスタンス |
サポートされていません | サポートされています | サポートされています | |
最短。ランタイムはコードパッケージに含まれていないため、コールドスタートが最短になります。 | 短い。コードパッケージは HTTP サーバーであるため、比較的大きいですが、イメージをプルする必要がないため、コールドスタートは短くなります。 | 比較的長い。イメージをプルする必要があるため、コールドスタートが比較的長くなります。 | |
コードの配信可能形式 | ZIP、JAR(Java)、およびフォルダ | コンテナイメージ | |
一部のリージョン(杭州など)では最大 500 MB、その他のリージョンでは最大 100 MB です。 説明 レイヤーを設定して依存関係を追加し、コードパッケージのサイズを削減できます。 |
説明 AI 推論アプリケーションの場合は、大規模モデルを NAS または OSS に保存して、イメージサイズを削減できます。 | ||
サポートされているプログラミング言語 | Node.js、Python、PHP、Java、C#、Go | 制限なし | 制限なし |
コンソールから関数を作成する
イベント関数
OSS トリガー、Kafka トリガー、SLS トリガー などのイベントトリガーを介して関連付けられた関数を呼び出す場合は、イベント関数を作成し、[ランタイム環境] として組み込みランタイムを使用することをお勧めします。
Web 関数
Java SpringBoot、Node.js Express、Python Flask、Golang Gin など、さまざまな言語の一般的なフレームワークに基づいてプログラムを作成する場合は、Web 関数を作成し、[ランタイム環境] としてカスタムランタイムを使用することをお勧めします。
タスク関数
関数の非同期呼び出しを開始し、非同期呼び出しの各フェーズの状態を追跡および保存する必要がある場合は、タスク関数を作成し、[ランタイム環境] として組み込みランタイムを使用することをお勧めします。
GPU 関数
Stable Diffusion WebUI、ComfyUI、RAG、TensorRT などの人気のある AI プロジェクトのコンテナイメージを使用して GPU インスタンスを作成する場合は、GPU 関数を作成することをお勧めします。この関数は、[カスタムイメージ] ランタイム環境のみをサポートしています。