次の方法で共有


Azure Functions ランタイム バージョンの概要

現在、Azure Functions は、2 つのバージョンのランタイム ホストをサポートしています。 次の表は、現在サポートされているランタイム バージョン、サポート レベル、使うべきタイミングについての詳細を示しています。

バージョン サポート レベル 説明
4.x ジョージア州 (GA) すべての言語の関数に推奨されるランタイム バージョン。サポートされている言語のバージョンを確認してください。
1.x GA (2026 年 9 月 14 日にサポートが終了します) .NET Framework を使用する必要がある C# アプリでのみサポートされます。 このバージョンはメンテナンス モードになっており、拡張機能は以降のバージョンでのみ提供されます。 バージョン 1.x のサポートは 2026 年 9 月 14 日に終了します。 .NET Framework 4.8、.NET 8、.NET 9 をサポートしているバージョン 4.x にアプリを移行することを強くお勧めします。

重要

2022 年 12 月 13 日の時点で、Azure Functions ランタイムのバージョン 2.x と 3.x で実行されている関数アプリは、延長サポートの終了に達しました。 詳細については、廃止されたバージョンに関する記事を参照してください。

この記事では、サポートされているバージョン間のいくつかの相違点、各バージョンの作成方法、関数が実行されるバージョンの変更方法について詳細に説明します。

サポートのレベル

次の 2 つのレベルのサポートがあります。

  • 一般公開 (GA) - 完全にサポートされ、運用環境用に承認されています。
  • プレビュー - まだサポートされていませんが、今後 GA 状態に達すると想定されています。

言語

関数アプリ内のすべての関数は、同じ言語を共有する必要があります。 アプリを作成するときに、関数アプリで関数の言語を選びます。 関数アプリの言語は FUNCTIONS_WORKER_RUNTIME 設定に保持され、既存の関数がある場合は変更できません。

必ず、記事の上部にある任意の開発言語を選択してください。

次の表は、Azure Functions によってサポートされている .NET バージョンを示しています。

サポートされる .NET のバージョンは、Functions のランタイムのバージョンと、選択した実行モデルの両方に依存します。

関数コードは、別の .NET ワーカー プロセスで実行されます。 .NET と .NET Framework のサポートされているバージョンで使います。 詳細については、 分離ワーカー モデルで C# Azure Functions を実行するためのガイドを参照してください。

サポートされているバージョン サポート レベル サポート終了日が予想されます
.NET 9 ジョージア州 (GA) 2026 年 5 月 12 日
.NET 8 ジョージア州 (GA) 2026 年 11 月 10 日
.NET Framework 4.8.1 ジョージア州 (GA) ポリシーを参照

.NET 6 は、以前は分離ワーカー モデルでサポートされていましたが、2024 年 11 月 12 日に公式サポートが終了しました。

.NET 7 は、以前は分離ワーカー モデルでサポートされていましたが、2024 年 5 月 14 日に公式サポートが終了しました。

詳細については、 分離ワーカー モデルで C# Azure Functions を実行するためのガイドを参照してください。

次の表は、Java 関数でサポートされている言語のバージョンを示しています。

サポートされているバージョン サポート レベル サポート期限
Java 21 ジョージア州 (GA) リリースとサービスのロードマップ」を参照してください。
Java 17 ジョージア州 (GA) リリースとサービスのロードマップ」を参照してください。
Java 11 ジョージア州 (GA) リリースとサービスのロードマップ」を参照してください。
Java 8 ジョージア州 (GA) こちらの Temurin サポート ページを参照してください。

Java 関数の開発と実行の詳細については、「Azure Functions の Java 開発者向けガイド」を参照してください。

次の表は、Node.js 関数でサポートされている言語のバージョンを示しています。

サポートされているバージョン サポート レベル サポート終了日が予想されます
Node.js 22 GA (Linux)
プレビュー (Windows)
2027 年 4 月 30 日
Node.js 20 ジョージア州 (GA) 2026 年 4 月 30 日

TypeScript は JavaScript へのトランスパイリングによってサポートされます。 詳細については、「Azure Functions の Node.js 開発者向けガイド」を参照してください。

次の表は、PowerShell 関数でサポートされている言語のバージョンを示しています。

サポートされているバージョン サポート レベル サポート終了日が予想されます
PowerShell 7.4 ジョージア州 (GA) 2026 年 11 月 10 日

詳細については、Azure Functions PowerShell 開発者向けガイドを参照してください。

次の表は、Python 関数でサポートされている言語のバージョンを示しています。

サポートされているバージョン サポート レベル サポート終了日が予想されます
Python 3.12 ジョージア州 (GA) 2028 年 10 月
Python 3.11 ジョージア州 (GA) 2027 年 10 月
Python 3.10 ジョージア州 (GA) 2026 年 10 月
Python 3.9 ジョージア州 (GA) 2025 年 10 月

詳細については、Azure Functions Python 開発者向けガイドを参照してください。

言語サポートに対する計画的な変更については、 Azure ロードマップの更新プログラムを参照してください。

以前にサポートされていたバージョンの Functions ランタイムの言語バージョンについては、「廃止されたランタイム バージョン」を参照してください。

特定のバージョンで実行する

Azure の公開アプリから使用される Functions ランタイムのバージョンは、FUNCTIONS_EXTENSION_VERSION アプリケーションの設定によって決まります。 場合によっては、特定の言語に対して、他の設定が適用される場合があります。

既定では、Azure portal で Azure CLI または Visual Studio ツールによって作成された関数アプリはバージョン 4.x に設定されます。 このバージョンは必要に応じて変更できます。 ランタイムのバージョンを 1.x にダウングレードできるのは、関数アプリを作成してから関数を追加するまでの間のみです。 より新しいメジャー バージョンへの更新は、既存の関数が含まれているアプリでも許可されます。

既存の関数アプリを移行する

アプリに既存の関数があるときは、以降のメジャー ランタイム バージョンに移行する前に予防措置を講じる必要があります。 次の記事では、言語固有の破壊的変更などの、メジャー バージョン間の破壊的変更について詳しく説明します。 既存の関数アプリを正常に移行するための段階的な手順も提供されます。

Azure でのアプリのバージョンの変更

次のランタイムのメジャー バージョン値が使用されています。

ランタイム ターゲット
~4 4.x
~1 1.x

重要

他のアプリ設定の変更や関数のコード変更が必要になる可能性があるため、このアプリ設定を任意に変更しないでください。 既存の関数アプリの場合は、 移行の手順に従います。

特定のマイナー バージョンに固定する

最新のメジャー バージョンで実行しているときに関数アプリで発生する可能性がある問題を解決するには、アプリを特定のマイナー バージョンに一時的にピン留めする必要があります。 固定により、最新のメジャー バージョンでアプリが正しく実行されるようになります。 マイナー バージョンに固定する方法は、Windows と Linux で異なります。 詳細については、「Azure Functions ランタイム バージョンをターゲットにする方法」を参照してください。

古いマイナー バージョンは、定期的に Functions から削除されます。 特定の古いマイナー バージョンの削除などの、Azure Functions リリースに関する最新のニュースについては、Azure App Service のお知らせをモニターしてください。

拡張機能の最小バージョン

バインディング拡張機能のバージョンと Functions ランタイムのバージョンの間に、技術的な相関関係はありません。 ただし、バージョン 4.x 以降、Functions ランタイムは、すべてのトリガーおよびバインディング拡張機能の最小バージョンを強制します。

パッケージが最低限必要なバージョンを満たしていないという警告が表示される場合は、その NuGet パッケージを、通常行うように最小バージョンに更新する必要があります。 Functions v4.x で使用される拡張機能の最小バージョン要件については、リンクされた構成ファイルをご覧ください。

C# スクリプトの場合は、 host.json の拡張機能バンドル参照を次のように更新します。

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

拡張機能バンドルのバージョンと Functions ランタイムのバージョンの間に、技術的な相関関係はありません。 ただし、バージョン 4.x 以降、Functions ランタイムは、拡張機能バンドルの最小バージョンを強制します。

拡張機能バンドルのバージョンが最低限必要なバージョンを満たしていないという警告を受け取った場合は、 host.json の既存の拡張機能バンドル参照を次のように更新します。

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

拡張機能バンドルの詳細については、「拡張機能バンドル」を参照してください。

廃止されたバージョン

これらのバージョンの Functions ランタイムは、2022 年 12 月 13 日に延長サポート終了に達しました。

バージョン 現在のサポート レベル 以前のサポート レベル
3.x サポート対象外 ジョージア州 (GA)
2.x サポート対象外 ジョージア州 (GA)

完全なサポートを受けるには、できるだけ早く、アプリをバージョン 4.x に移行する必要があります。 言語固有の移行手順の完全なセットについては、Azure Functions バージョン 4.x へのアプリの移行に関する記事を参照してください。

バージョン 2.x と 3.x を使用しているアプリは、引き続き CI/CD DevOps パイプラインから関数アプリを作成してデプロイすることができ、既存のアプリはすべて破壊的変更を生じさせることなく引き続き実行されます。 ただし、アプリは、新機能、セキュリティ パッチ、パフォーマンス最適化の対象にはなりません。 関連するサービス サポートは、アプリをバージョン 4.x にアップグレードした後にのみ受けることができます。

コア依存関係であった .NET Core 3.1 のサポートが終了したため、バージョン 2.x と 3.x はサポートされなくなりました。 この要件は、Azure Functions でサポートされている言語すべてに影響します。

ローカルで開発されたアプリケーションのバージョン

関数アプリを次のように更新し、ターゲット バージョンをローカルで変更できます。

Visual Studio のランタイム バージョン

Visual Studio では、プロジェクトを作成するときにランタイムのバージョンを選択します。 Visual Studio 用の Azure Functions ツールは、ランタイムの 2 つのメジャー バージョンをサポートしています。 デバッグ時と公開時には、プロジェクトの設定に基づいて正しいバージョンが使用されます。 バージョン設定は、次のプロパティの .csproj ファイルで定義されます。

<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>

分離ワーカー モデルを使用している場合は、ターゲット フレームワークとして選択、net8.0net6.0、またはnet48できます。 net9.0を使用することもできます。 インプロセス モデルを使用している場合は、net8.0またはnet6.0を選択できます。Microsoft.NET.Sdk.Functions拡張機能を少なくとも4.4.0に設定する必要があります。

.NET 7 は、以前は分離ワーカー モデルでサポートされていましたが、2024 年 5 月 14 日に公式サポートが終了しました。

Visual Studio Code と Azure Functions Core Tools

Azure Functions Core Tools は、コマンドラインの開発に使用されます。また、Visual Studio Code 用の Azure Functions 拡張機能からも使用されます。 詳細については、「Azure Functions Core Tools のインストール」を参照してください。

Visual Studio Code の開発では、インストールされているツールのバージョンと一致するように、 azureFunctions.projectRuntime のユーザー設定を更新する必要がある場合もあります。 この設定で、関数アプリの作成時に使用されるテンプレートと言語も更新されます。

バインド

バージョン 2.x から、ランタイムでは、次の利点を提供する新しいバインド拡張モデルが使用されています。

  • Microsoft 以外のバインド拡張機能のサポート。

  • ランタイムとバインドの分離。 この変更により、バインド拡張を個別にバージョン管理したり、解放したりできます。 たとえば、基になる SDK の新しいバージョンに依存する拡張のバージョンにアップグレードするよう選択できます。

  • より軽量な実行環境。ここでは、使用中のバインドのみがランタイムによって識別され、読み込まれます。

HTTP とタイマーのトリガーを除き、すべてのバインドを関数アプリ プロジェクトに明示的に追加するか、ポータルで登録する必要があります。 詳細については、 Azure Functions のバインド式パターンに関するページを参照してください。

この表は、Azure Functions のメジャー バージョンのランタイムでサポートされているバインディングを示しています。

タイプ 1.x1 2.x 以降2 トリガー 入力 出力
Blob Storage
Azure Cosmos DB
Azure Data Explorer
Azure SQL
Dapr4
Event Grid
Event Hubs
HTTP と Webhook
IoT Hub
Kafka3
Mobile Apps
Notification Hubs
Queue Storage
Redis
RabbitMQ3
SendGrid
Service Bus
SignalR
Table Storage
タイマー
Twilio

注:

  1. Azure Functions Runtime のバージョン 1.x のサポートは 2026 年 9 月 14 日に終了します。 完全なサポートのために、アプリをバージョン 4.x に移行することを強くお勧めします。
  2. バージョン 2.x ランタイム以降では、HTTP と Timer を除くすべてのバインドを登録する必要があります。 「バインディング拡張機能を登録する」を参照してください。
  3. トリガーは従量課金プランでサポートされていません。 ランタイム駆動のトリガーが必要です。
  4. Kubernetes、IoT Edge、その他の自己ホスト型モードでのみサポートされます。

関数アプリ タイムアウト期間

関数アプリ内の関数のタイムアウト期間は、functionTimeout プロジェクト ファイルの プロパティによって定義されます。 このプロパティは、関数の実行に特に適用されます。 トリガーによって関数の実行が開始された後、関数はタイムアウト期間内に戻るか応答する必要があります。 タイムアウトを回避するには、堅牢な関数を作成することが重要です。 詳細については、「Azure Functions のパフォーマンスと信頼性を向上させる」を参照してください。

次の表は、特定のプランの既定値と最大値 (分) を示しています。

プラン 既定値 最大1
Flex 従量課金プラン 30 無制限2
Premium プラン 304 無制限2
専用プラン 304 無制限3
コンテナー アプリ 30 無制限5
従量課金プラン 5 10
  1. 関数アプリのタイムアウト設定に関係なく、HTTP トリガー関数が要求に応答できる最大時間は 230 秒です。 これは、Azure Load Balancer の既定のアイドル タイムアウトによるものです。 より長い処理時間では、Durable Functions async pattern の使用を検討するか、実際の作業を遅らせて、即座に応答を返します
  2. 実行タイムアウトの最長期間は適用されません。 ただし、関数の実行に与えられる猶予期間は、Flex 従量課金プランと Premium プランの場合、スケールイン中は 60 分であり、プラットフォームの更新中は 10 分の猶予期間が与えられます。
  3. App Service プランが Always On に設定されている必要があります。 プラットフォームの更新中は 10 分の猶予期間が与えられます。
  4. Functions ホスト ランタイムのバージョン 1.x の既定のタイムアウトは "無制限" です。
  5. 最小レプリカ数が 0 に設定されている場合、既定のタイムアウトはアプリで使われている特定のトリガーによって異なります。

詳細については、次のリソースを参照してください。