Azure Functions でサポートされている言語

この記事では、Azure Functions で使用できる言語のサポートのレベルについて説明します。 また、ネイティブでサポートされていない言語を使用して関数を作成する方法についても説明します。

サポートのレベル

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

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

言語 (ランタイム バージョン別)

複数のバージョンの Azure Functions ランタイムを利用できます。 次の表は、各ランタイム バージョンでどの言語がサポートされているかを示しています。

Language 1.x 2.x 3.x 4.x
C# GA (.NET Framework 4.8) GA (.NET Core 2.11) GA (.NET Core 3.1)
GA (.NET 5.0)
GA (.NET 6.0)
JavaScript GA (Node.js 6) GA (Node.js 10、8) GA (Node.js 14、12、10) GA (Node.js 14)
GA (Node.js 16)
F# GA (.NET Framework 4.8) GA (.NET Core 2.11) GA (.NET Core 3.1) GA (.NET 6.0)
Java 該当なし GA (Java 8) GA (Java 11、8) GA (Java 11、8)
PowerShell 該当なし GA (PowerShell Core 6) GA (PowerShell 7.0、Core 6) GA (PowerShell 7.0)
プレビュー (PowerShell 7.2)
Python 該当なし GA (Python 3.7、3.6) GA (Python 3.9、3.8、3.7、3.6) GA (Python 3.9、3.8、3.7)
TypeScript2 該当なし GA GA GA

1 ランタイム バージョン 2.x を対象とする .NET クラス ライブラリのアプリは、.NET Core 2.x 互換モードで .NET Core 3.1 で実行されます。 詳細については、Functions v2. x に関する考慮事項に関するページを参照してください。
2 JavaScript へのトランスパイリングによってサポートされます。

サポートされている言語バージョンの詳細については、言語固有の開発者ガイドに関する記事をご覧ください。
言語サポートの計画的な変更については、「Azure ロードマップ」を参照してください。

言語サポートの詳細

次の表は、Functions でサポートされているどの言語を、Linux または Windows で実行できるかを示しています。 また、お使いの言語で Azure portal での編集がサポートされているかどうかも示しています。 言語は、Azure portal で関数アプリを作成するときに選択したランタイム スタック オプションに基づいています。 これは、Azure Functions Core Tools で func init コマンドを使用するときの --worker-runtime オプションと同じです。

Language ランタイム スタック Linux Windows ポータル内編集1
C# クラス ライブラリ2 .NET
C# スクリプト .NET
JavaScript Node.js
Python Python
Java Java
PowerShell PowerShell Core
TypeScript Node.js
Go/Rust/その他 カスタム ハンドラー

1 Linux 上で実行する場合、ポータル内編集は専用 (App Service) プランでのみサポートされます。
2 ポータルでは、現在、.NET 5.0 で実行される関数アプリを作成できません。 詳細については、「Azure Functions を使用した .NET 5 関数の開発と発行」を参照してください。

詳細については、オペレーティング システム/ランタイムのサポートを参照してください。

ポータル内編集を使用できない場合は、代わりに関数をローカルで開発する必要があります。

言語のメジャー バージョンのサポート

Azure Functions では、サポートされているプログラミング言語のメジャー バージョンのサポートを保証しています。 ほとんどの言語では、サポートされているメジャー バージョンを更新するために、マイナー バージョンまたはパッチ バージョンがリリースされています。 マイナー バージョンやパッチ バージョンの例としては、Python 3.9.1 や Node 14.17 などがあります。 サポートされている言語の新しいマイナー バージョンが使用可能になると、関数アプリで使用されるマイナー バージョンは、それらの新しいマイナー バージョンまたはパッチ バージョンに自動的にアップグレードされます。

Note

Azure Functions では、新しいマイナー バージョンが使用可能になった後いつでも古いマイナー バージョンのサポートが削除されることがあるため、関数アプリをプログラミング言語の特定のマイナーまたはパッチ バージョンに固定しないでください。

カスタム ハンドラー

カスタム ハンドラーは、Azure Functions ホストからイベントを受信する軽量の Web サーバーです。 HTTP プリミティブをサポートするすべての言語で、カスタム ハンドラーを実装できます。 つまり、カスタム ハンドラーを使用して、正式にサポートされていない言語で関数を作成できることを意味します。 詳細については、「Azure Functions のカスタム ハンドラー」を参照してください。

言語拡張

2\.x 以降、ランタイムは、言語拡張を提供するように設計されています。 2\.x ランタイムの JavaScript および Java 言語は、この拡張機能で構築されています。

次のステップ

サポートされている言語で関数を開発する方法の詳細については、次のリソースを参照してください。