次の方法で共有


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

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

Version サポート レベル 説明
4.x GA すべての言語の関数に推奨されるランタイム バージョン。サポートされている言語のバージョンを確認してください。
1.x GA (2026 年 9 月 14 日にサポートが終了します) .NET Framework を使用する必要がある C# アプリでのみサポートされます。 このバージョンはメンテナンス モードになっており、拡張機能は以降のバージョンでのみ提供されます。 バージョン 1.x のサポートは 2026 年 9 月 14 日に終了します。 .NET Framework 4.8、.NET 6、.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 のサポートされているバージョンで使います。 詳細については、.NET 分離ワーカー プロセス関数の開発に関する記事を参照してください。

サポートされているバージョン サポート レベル コミュニティのサポート終了予定日
.NET 9 プレビュー ポリシーを参照
.NET 8 GA 2026 年 11 月 10 日
.NET 6 GA 2024 年 11 月 12 日
.NET Framework 4.8 GA ポリシーを参照

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

詳細については、「分離されたワーカー プロセスにおける C# Azure Functions の実行のガイド」をご覧ください。

次の表は、Java 関数でサポートされている言語のバージョンを示しています。 記事の冒頭で、ご利用の開発言語を選んでください。

サポートされているバージョン サポート レベル コミュニティのサポート終了予定日
Java 21 (Linux のみ) プレビュー 2028 年 9 月
Java 17 GA 2027 年 9 月
Java 11 GA 2027 年 9 月
Java 8 GA 2026 年 11 月 30 日

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

次の表は、Node.js 関数でサポートされている言語のバージョンを示しています。 記事の冒頭で、ご利用の開発言語を選んでください。

サポートされているバージョン サポート レベル コミュニティのサポート終了予定日
Node.js 22 プレビュー 2027 年 4 月 30 日
Node.js 20 GA 2026 年 4 月 30 日
Node.js 18 GA 2025 年 4 月 30 日

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

次の表は、PowerShell 関数でサポートされている言語のバージョンを示しています。 記事の冒頭で、ご利用の開発言語を選んでください。

サポートされているバージョン サポート レベル コミュニティのサポート終了予定日
PowerShell 7.4 GA 2026 年 11 月 10 日
PowerShell 7.2 GA 2024 年 11 月 8 日

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

次の表は、Python 関数でサポートされている言語のバージョンを示しています。 記事の冒頭で、ご利用の開発言語を選んでください。

サポートされているバージョン サポート レベル コミュニティのサポート終了予定日
Python 3.11 GA 2027 年 10 月
Python 3.10 GA 2026 年 10 月
Python 3.9 GA 2025 年 10 月
Python 3.8 GA 2024 年 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 にアップグレードした後にのみ受けることができます。

バージョン 2.x および 3.x のサポートが終了するのは、コア依存関係として使用されていた .NET Core 3.1 のサポートが終了するためです。 この要件は、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 から、ランタイムでは、次の利点を提供する新しいバインド拡張モデルが使用されています。

  • サード パーティのバインド拡張のサポート。

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

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

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

各ランタイム バージョンでサポートされるバインドを次の表に示します。

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

Type 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
Timer
Twilio

注:

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

Function App タイムアウト期間

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

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

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

次のステップ

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