.NET関数には、次の 2 つの実行モデルがあります。
| 実行モデル | 説明 |
|---|---|
| 分離ワーカー モデル | 関数コードは、別の.NETワーカー プロセスで実行されます。 サポートされている .NET および .NET Framework のバージョンで使用します。 詳細については、分離ワーカー モデルで C# Azure Functionsを実行するための Guide を参照してください。 |
| インプロセス モデル | 関数コードは、Functions ホスト プロセスと同じプロセスで実行されます。 .NET の |
重要
インプロセス モデルのサポートは 2026 年 11 月 10 日に終了します。 完全なサポートのために、分離ワーカー モデルにアプリを移行することを強くお勧めします。
この記事では、2 つのモデル間の機能と動作の違いの現在の状態について説明します。 インプロセス モデルから分離ワーカー モデルに移行するには、「インプロセス モデルから分離ワーカー モデルに.NET アプリを移行するを参照してください。
実行モードの比較テーブル
次の表を使用して、2 つのモデル間の特徴と機能の違いを比較します。
| 機能/動作 | 分離ワーカー モデル | インプロセス モデル3 |
|---|---|---|
| サポートされている .NET バージョン | 長期サポート (LTS) バージョン、 標準期間サポート (STS) バージョン、 .NET Framework |
長期サポート (LTS) バージョン (.NET 8 で終わる) |
| コア パッケージ |
Microsoft。Azure。Functions.Worker Microsoft。Azure。Functions.Worker.Sdk |
Microsoft.NET。Sdk.Functions |
| バインディング拡張機能パッケージ | Microsoft。Azure。Functions.Worker.Extensions.* | Microsoft。Azure。WebJobs.Extensions.* |
| Durable Functions (デュラブルファンクションズ) | サポートされています | サポートされています |
| バインディングによって公開されるモデルの型 | 単純型 JSON シリアル化可能な型 配列/列挙型 サービス SDK の種類4 |
単純型 JSON シリアル化可能な型 配列/列挙型 サービス SDK の種類4 |
| HTTP トリガー モデルの型 | HttpRequestDataHttpResponseData HttpRequest / IActionResult (ASP.NET Core integration) 5 |
HttpRequestIActionResult5 HttpRequestMessageHttpResponseMessage |
| 出力バインディングのインタラクション | 次の値を使用して、展開されたモデルの値を返します。 ‐ 1 つまたは複数の出力 - 出力の配列 |
戻り値 (単一出力のみ)、 パラメーター、 IAsyncCollector |
| 命令型バインディング1 | サポートされていません - 代わりに SDK の種類を直接操作します | サポートされています |
| 依存関係の挿入 | Supported (.NET エコシステムと一致する改善されたモデル) | サポートされています |
| ミドルウェア | サポートされています | サポートされていません |
| ログ記録 | FunctionContext から取得するか、依存関係の挿入を使用して取得します | が関数に渡されます 依存性注入を使用して |
| Application Insights の依存関係 | サポートされています | サポートされています |
| キャンセル トークン | サポートされています | サポートされています |
| コールド スタート時間2 | 構成可能な最適化 | 最適化 |
| ReadyToRun | サポートされています | サポートされています |
| [Flex 従量課金] | サポートされています | サポートされていません |
| .NET Aspire | プレビュー | サポートされていません |
- 実行時に決定されたパラメーターを使用してサービスと対話する必要がある場合は、命令型バインディングを使用するよりも、対応するサービス SDK を直接使用することをお勧めします。 SDK はより簡潔で、より多くのシナリオをカバーすることができ、エラー処理やデバッグの目的にも適しています。 この推奨事項は、両方のモデルに適用されます。
- プレビュー フレームワークのジャストインタイム読み込みにより、Windowsで.NETの一部のプレビューバージョンを使用した場合、コールドスタート時間にさらに影響を与える可能性があります。 この影響は、インプロセス worker モデルと分離ワーカー モデルの両方に適用されますが、異なるバージョン間で比較すると顕著になる可能性があります。 このプレビュー バージョンの遅延は、Linux プランでは生じません。
- C# スクリプト関数もインプロセスで実行され、インプロセス クラス ライブラリ関数と同じライブラリを使用します。 詳細については、Azure Functions C# スクリプト (.csx) 開発者向けリファレンスを参照してください。
- サービス SDK の種類には、Azure SDK for .NET の型(例えば、BlobClient)が含まれます。
- ASP.NET Core型は、.NET Framework ではサポートされていません。
サポートされているバージョン
Functions ランタイムのバージョンでは、特定のバージョンの.NETがサポートされます。 Functions のバージョンの詳細については、「Azure Functions ランタイム バージョンの概要を参照してください。 バージョンのサポートは、関数がインプロセスで実行されるか、分離ワーカー プロセスで実行されるかによっても異なります。
注
関数アプリで使用される Functions ランタイム バージョンを変更する方法については、「現在のランタイム バージョンの表示と更新」を参照してください。
次の表は、特定のバージョンの Functions で使用できる.NETまたは .NET Framework の最上位レベルを示しています。
| Functions ランタイムのバージョン | 分離ワーカー モデル | インプロセス モデル4 |
|---|---|---|
| 関数 4.x1 | .NET 105 .NET 9.0 .NET 8.0 .NET Framework 4.82 |
.NET 8.0 |
| 関数 1.x3 | 該当なし | .NET Framework 4.8 |
1 .NET 6 は以前は両方のモデルでサポートされていましたが、2024年11月12日に公式サポートの終了に達しました。 .NET 7 は以前は分離ワーカーモデルでサポートされていましたが、2024年5月14日に公式サポートの終了を迎えました。
2 ビルド プロセスには、.NET SDK も必要です。
3 サポートは、2026 年 9 月 14 日にAzure Functions ランタイムのバージョン 1.x で終了します。 詳細については、こちらのサポートに関するお知らせを参照してください。 引き続き完全なサポートを受けるには、アプリをバージョン 4.x に移行する必要があります。
4 インプロセス モデルのサポートは 2026 年 11 月 10 日に終了します。 詳細については、こちらのサポートに関するお知らせを参照してください。 完全なサポートを受け続けるには、分離ワーカー モデルにアプリを移行する必要があります。
5 従量課金プランでは Linux で 10 個のアプリ.NET実行することはできません。 Linux で実行するには、代わりに Flex 従量課金プランを使用する必要があります。 詳細な移行手順については、「 従量課金プラン アプリを Flex Consumption プランに移行する」を参照してください。
特定の古いマイナー バージョンの削除など、Azure Functionsリリースに関する最新のニュースについては、Azure App Service のお知らせを監視します。
次のステップ
分離ワーカー モデルに関する詳細情報
分離ワーカー モデルに移行する