Azure Functions ランタイム バージョンをターゲットにする方法

関数アプリは、特定のバージョンの Azure Functions ランタイムで実行されます。 既定では、関数アプリはバージョン 4.x の Functions ランタイムで作成されます。 関数アプリは、サポートされているメジャー バージョンで実行されている場合にのみサポートされます。 この記事では、必要に応じて特定のバージョンをターゲットにする、または "ピン留めする" ように、Azure の関数アプリを構成する方法について説明します。

特定のバージョンをターゲットにする方法は、Windows と Linux のどちらを実行しているかによって異なります。 この記事のバージョンでは、Windows がサポートされています。 記事の上部でお使いの OS をお選びください。

特定のバージョンをターゲットにする方法は、Windows と Linux のどちらを実行しているかによって異なります。 この記事のバージョンでは、Linux がサポートされています。 記事の上部でお使いの OS をお選びください。

重要

可能であれば、常に、サポートされている最新バージョンの Azure Functions ランタイムで関数を実行してください。 最新バージョンに問題があるため、指示された場合にのみ、アプリを特定のバージョンにピン留めしてください。 関数が正しく実行されるとすぐに、常に最新のランタイム バージョンに移行する必要があります。

ローカル開発時に、インストールされているバージョンの Azure Functions Core Tools は、Azure の関数アプリで使用されるメジャー ランタイム バージョンと一致している必要があります。 詳細については、「Core Tools バージョン」を参照してください。

ランタイムのバージョンを更新する

可能であれば、常に、サポートされている最新バージョンの Azure Functions ランタイムで関数アプリを実行してください。 関数アプリが現在、以前のバージョンのランタイムで実行されている場合は、アプリをバージョン 4.x に移行する必要があります

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

現在のランタイム バージョンを確認するには、「現在のランタイム バージョンの表示」を参照してください。

現在のランタイム バージョンの表示

関数アプリの現在のランタイム バージョンは、次のいずれかの方法で表示できます。

関数アプリで現在使用されているランタイム バージョンを表示して更新するには、次の手順に従います。

  1. Azure portal で、関数アプリに移動します。

  2. [設定][構成] を選択します。 [関数のランタイム設定] タブで、 [ランタイム バージョン] を探します。 特定のランタイム バージョンに注目してください。 以下の例では、バージョンが ~4 に設定されています。

    Screenshot showing how to view the runtime version.

特定のバージョンをピン留めする

Azure Functions を使用すると、特定の関数アプリで使用されるランタイム バージョンをターゲットにするように、FUNCTIONS_EXTENSION_VERSION アプリケーション設定を使用できます。 メジャー バージョン (~4) のみを指定した場合、関数アプリは、ランタイムの新しいマイナー バージョンが利用可能になった時点で、自動的に新しいマイナー バージョンに更新されます。 新しいマイナー バージョンでは破壊的変更が発生しないようにするため、マイナー バージョンの更新は自動的に行われます。

Linux アプリでは、linuxFxVersion サイト設定FUNCTIONS_EXTENSION_VERSION を使用して、関数を実行するための適切な Linux 基本イメージを決定します。 Linux で新しい関数アプリを作成すると、ランタイムは言語スタックのランタイム バージョンに基づいて適切な基本イメージを自動的に選択します。

特定のランタイム バージョンにピン留めすると、関数アプリが再起動されます。

FUNCTIONS_EXTENSION_VERSION で特定のマイナー バージョン (4.0.12345 など) を指定すると、関数アプリは、自動更新に戻るように明示的に選択するまで、その特定のバージョンのランタイムにピン留めされます。 メジャー バージョンをターゲットにできない関数アプリの問題を解決するのに十分な時間がある場合にのみ、特定のマイナー バージョンにピン留めする必要があります。 古いマイナー バージョンは、運用環境から定期的に削除されます。 削除されるマイナー バージョンにピン留めされている場合、関数アプリは、FUNCTIONS_EXTENSION_VERSION で設定されたバージョンではなく、最も近い既存のバージョンで実行されます。 マイナー バージョンの削除は、App Service のお知らせページで発表されます。

Note

Visual Studio から特定のマイナー バージョンのランタイムにピン留めされているアプリに発行しようとすると、最新バージョンへの更新または発行の取り消しを求めるダイアログが表示されます。 特定のマイナー バージョンを使用する必要がある場合にこのチェックを回避するには、.csproj ファイルに <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> プロパティを追加します。

次のいずれかの方法を使用して、アプリを特定のバージョンのランタイムに一時的にピン留めします。

関数アプリで現在使用されているランタイム バージョンを表示して更新するには、次の手順に従います。

  1. Azure portal で、関数アプリに移動します。

  2. [設定][構成] を選択します。 [関数のランタイム設定] タブで、 [ランタイム バージョン] を探します。 特定のランタイム バージョンに注目してください。 以下の例では、バージョンが ~4 に設定されています。

    Screenshot showing how to view the runtime version.

  1. アプリを特定のマイナー バージョンにピン留めするには、[アプリケーション設定]>[FUNCTIONS_EXTENSION_VERSION] を選択し、[値] を必要なマイナー バージョンに変更して、[OK] を選択します。

  2. [保存]>[続行] を選択して変更を適用し、アプリを再起動します。

アプリケーション設定に変更が加えられると、Function App が再起動します。

Linux で特定のホスト バージョンに関数アプリをピン留めするには、linuxFxVersion サイト設定でバージョン固有の基本イメージ URL を DOCKER|<PINNED_VERSION_IMAGE_URI> の形式で設定します。

重要

Linux 上でピン留めされた関数アプリは、通常のセキュリティとホスト機能の更新プログラムを受け取りません。 サポート プロフェッショナルが推奨しない限り、Python|3.9 などのお使いの言語やバージョンの FUNCTIONS_EXTENSION_VERSION 設定と標準 linuxFxVersion 値を使用してください。 有効な値については、linuxFxVersion リファレンス記事を参照してください。

特定のランタイムへのピン留めは、従量課金プランで実行されている Linux 関数アプリでは現在サポートされていません。

次に、Node.js 16 関数アプリを 4.14.0.3 の特定のランタイム バージョンにピン留めするために必要な linuxFxVersion 値の例を示します。

DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node16

必要に応じて、サポート プロフェッショナルがアプリケーションの有効な基本イメージ 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> をサポート プロフェッショナルが提供する特定の画像の値に置き換えます。

このコマンドは、前のコード例で [Cloud Shell を開く] をクリックすることで、Azure Cloud Shell から実行できます。 また、Azure CLI をローカルに使用して、az loginを実行してサインインした後に、このコマンドを実行することもできます。

サイト構成に変更が加えられると、関数アプリが再起動されます。

次のステップ