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 6.0) GA (.NET 7.0) GA (.NET Framework 4.8) |
JavaScript | GA (Node.js 6) | GA (Node.js 10、8) | GA (Node.js 14、12、10) | GA (Node.js 14) GA (Node.js 16) プレビュー (Node.js 18) |
F# | GA (.NET Framework 4.8) | GA (.NET Core 2.11) | GA (.NET Core 3.1) | GA (.NET 6.0) GA (.NET 7.0) |
Java | 該当なし | GA (Java 8) | GA (Java 11、8) | GA (Java 11、8) GA (Java 17) |
PowerShell | 該当なし | 該当なし | 該当なし | GA (PowerShell 7.2) |
Python | 該当なし | GA (Python 3.7) | GA (Python 3.9、3.8、3.7) | GA (Python 3.9、3.8、3.7) プレビュー (3.10) |
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 | ポータルでの編集 |
---|---|---|---|---|
C# クラス ライブラリ1 | .NET | ✓ | ✓ | |
C# スクリプト | .NET | ✓ | ✓ | ✓ |
JavaScript | Node.js | ✓ | ✓ | ✓ |
Python | Python | ✓ | ✓ | |
Java | Java | ✓ | ✓ | |
PowerShell | PowerShell Core | ✓ | ✓ | ✓ |
TypeScript | Node.js | ✓ | ✓ | |
Go/Rust/その他 | カスタム ハンドラー | ✓ | ✓ |
1 ポータルでは、現在、.NET 7.0 で実行される関数アプリを作成できません。 詳細については、「分離されたワーカー プロセスにおける C# Azure Functions の実行のガイド」をご覧ください。
オペレーティング システムと言語のサポートの詳細については、オペレーティング システム/ランタイムのサポートに関する記事を参照してください。
ポータル内編集を使用できない場合は、代わりに関数をローカルで開発する必要があります。
言語のメジャー バージョンのサポート
Azure Functions では、サポートされているプログラミング言語のメジャー バージョンのサポートを保証しています。 ほとんどの言語では、サポートされているメジャー バージョンを更新するために、マイナー バージョンまたはパッチ バージョンがリリースされています。 マイナー バージョンやパッチ バージョンの例としては、Python 3.9.1 や Node 14.17 などがあります。 サポートされている言語の新しいマイナー バージョンが使用可能になると、関数アプリで使用されるマイナー バージョンは、それらの新しいマイナー バージョンまたはパッチ バージョンに自動的にアップグレードされます。
Note
Azure Functions では、新しいマイナー バージョンが使用可能になった後いつでも古いマイナー バージョンのサポートが削除されることがあるため、関数アプリをプログラミング言語の特定のマイナーまたはパッチ バージョンに固定しないでください。
カスタム ハンドラー
カスタム ハンドラーは、Azure Functions ホストからイベントを受信する軽量の Web サーバーです。 HTTP プリミティブをサポートするすべての言語で、カスタム ハンドラーを実装できます。 つまり、カスタム ハンドラーを使用して、正式にサポートされていない言語で関数を作成できることを意味します。 詳細については、「Azure Functions のカスタム ハンドラー」を参照してください。
言語拡張
2\.x 以降、ランタイムは、言語拡張を提供するように設計されています。 2\.x ランタイムの JavaScript および Java 言語は、この拡張機能で構築されています。
次のステップ
サポートされている言語で関数を開発する方法の詳細については、次のリソースを参照してください。