Azure Functions ランタイム バージョンをターゲットにする方法
Function App は、Azure Functions ランタイムの特定のバージョンで実行されます。 メジャー バージョンには、次の 4 つがあります: 4.x、3.x、2.x、および 1.x。 既定では、関数アプリはバージョン 4.x のランタイムで作成されます。 この記事では、選択したバージョンで実行されるように Azure の Function App を構成する方法について説明します。 特定のバージョン用にローカル開発環境を構成する方法については、「Azure Functions をローカルでコーディングしてテストする」を参照してください。
特定のバージョンを手動でターゲットにする方法は、Windows と Linux のどちらを実行しているかによって異なります。
自動および手動でのバージョンの更新
このセクションは、Linux 上で関数アプリを実行する場合には適用されません。
Azure Functions を使用すると、Function App 内で FUNCTIONS_EXTENSION_VERSION
アプリケーション設定を使用することで、Windows 上のランタイムの特定のバージョンをターゲットにすることができます。 Function App は、新しいバージョンへの移行を明示的に選択しない限り、指定されたメジャー バージョンに保持されます。 メジャー バージョンのみを指定した場合、Function App は、ランタイムの新しいマイナー バージョンが利用可能になった時点で、自動的に新しいマイナー バージョンに更新されます。 新しいマイナー バージョンには、重大な変更は導入できません。
マイナー バージョン (たとえば "2.0.12345") を指定した場合、Function App は、明示的にバージョンを変更するまで、その特定のバージョンに固定されます。 古いマイナー バージョンは、運用環境から定期的に削除されます。 マイナー バージョンが削除されると、関数アプリは、FUNCTIONS_EXTENSION_VERSION
で設定されたバージョンではなく、最新バージョンでの実行に戻ります。 このため、特定のマイナー バージョンを必要とする関数アプリの問題を迅速に解決する必要があります。 その後、メジャー バージョンをターゲットにする設定に戻ることができます。 マイナー バージョンの削除は、App Service のお知らせページで発表されます。
Note
Azure Functions の特定のメジャー バージョンに固定された後で、Visual Studio を使用して Azure に発行しようとすると、最新のパ―ジョンへのアップロードまたは発行の取り消しを求めるダイアログ ウィンドウが表示されます。 これを回避するには、.csproj
ファイルに <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate>
プロパティを追加します。
新しいバージョンが公開されると、ポータルで確認のメッセージが表示され、そのバージョンに移行することができます。 新しいバージョンに移行した後は、FUNCTIONS_EXTENSION_VERSION
アプリケーション設定を使用して、いつでも以前のバージョンに戻すことができます。
次の表は、各メジャー バージョンの自動更新を有効にする FUNCTIONS_EXTENSION_VERSION
値を示しています。
メジャー バージョン | FUNCTIONS_EXTENSION_VERSION 値 |
追加構成 |
---|---|---|
4.x | ~4 |
Windows では、.NET 6 を有効にします |
3.x* | ~3 |
|
2.x* | ~2 |
|
1.x | ~1 |
*2022 年 12 月 13 日に延長サポートの終了 (EOL) に達しました。 有効期間が終了したバージョンに関する詳細なサポートに関する声明については、こちらの移行に関する記事を参照してください。
ランタイム バージョンを変更するたびに、Function App が再起動されます。
現在のランタイム バージョンの表示と更新
このセクションは、Linux 上で関数アプリを実行する場合には適用されません。
Function App によって使用されるランタイム バージョンを変更できます。 破壊的変更の可能性があるため、ランタイム バージョンの変更は、関数アプリで関数を作成する前にのみ実行できます。
重要
ランタイム バージョンは FUNCTIONS_EXTENSION_VERSION
の設定によって決定されますが、この変更はその設定の直接の変更によってではなく、Azure portal でのみ行う必要があります。 これは、ポータルが変更を検証し、必要に応じてその他の関連する変更を行うためです。
関数アプリで現在使用されているランタイム バージョンを表示して更新するには、次の手順に従います。
Azure portal で、関数アプリに移動します。
[設定] で [構成] を選択します。 [関数のランタイム設定] タブで、 [ランタイム バージョン] を探します。 特定のランタイム バージョンに注目してください。 以下の例では、バージョンが
~4
に設定されています。バージョン 1.x ランタイムに関数アプリを固定するには、 [ランタイム バージョン] で [~1] を選択します。 アプリに関数がある場合、このスイッチは無効です。
ランタイム バージョンを変更したときは、 [概要] タブに戻り、 [再起動] を選択してアプリを再起動します。 関数アプリがバージョン 1.x ランタイムでの実行を再開します。関数を作成するときは、バージョン 1.x のテンプレートを使用します。
アプリケーション設定に変更が加えられると、Function App が再起動します。
Linux 上で特定のバージョンにピン留めする
Linux 関数アプリを特定のホスト バージョンにピン留めするには、linuxFxVersion
サイト設定でバージョン固有の基本イメージ URL を DOCKER|<PINNED_VERSION_IMAGE_URI>
の形式で設定します。
重要
Linux 上でピン留めされた関数アプリは、通常のセキュリティとホスト機能の更新プログラムを受け取りません。 サポート プロフェッショナルが推奨しない限り、Python|3.9
などのお使いの言語やバージョンの FUNCTIONS_EXTENSION_VERSION
設定と標準 linuxFxVersion
値を使用してください。 有効な値については、linuxFxVersion
リファレンス記事を参照してください。
特定のランタイムへのピン留めは、従量課金プランで実行されている Linux 関数アプリでは現在サポートされていません。
次に、Node.js 18 関数アプリを 4.11.2 の特定のランタイム バージョンにピン留めするために必要な linuxFxVersion
値の例を示します。
DOCKER|mcr.microsoft.com/azure-functions/node:4.11.2-node18-appservice
必要に応じて、サポート プロフェッショナルがアプリケーションの有効な基本イメージ URI を提供できます。
次の Azure CLI コマンドを使用して、linuxFxVersion
を表示および設定します。 現在、ポータルで、または Azure PowerShell を使用して linuxFxVersion
は設定できません。
現在のランタイム バージョンを表示するには、az functionapp config show コマンドと共に使用します。
az functionapp config show --name <function_app> \
--resource-group <my_resource_group> --query 'linuxFxVersion' -o tsv
このコードでは、<function_app>
をお使いの関数アプリの名前に置き換えます。 また、<my_resource_group>
をお使いの関数アプリのリソース グループの名前に置き換えます。 linuxFxVersion
の現在の値が返されます。
関数アプリの linuxFxVersion
の設定を更新するには、az functionapp config set コマンドを使用します。
az functionapp config set --name <FUNCTION_APP> \
--resource-group <RESOURCE_GROUP> \
--linux-fx-version <LINUX_FX_VERSION>
<FUNCTION_APP>
をお使いの関数アプリの名前に置き換えます。 また、<RESOURCE_GROUP>
をお使いの関数アプリのリソース グループの名前に置き換えます。 最後に、<LINUX_FX_VERSION>
をサポート プロフェッショナルが提供する特定の画像の値に置き換えます。
このコマンドは、上記のコード サンプルの [テスト] をクリックすることで、Azure Cloud Shell から実行できます。 また、Azure CLI をローカルに使用して、az login
を実行してサインインした後に、このコマンドを実行することもできます。
サイト構成に変更が加えられると、関数アプリが再起動されます。