次の方法で共有


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

関数アプリは、特定のバージョンの Azure Functions ランタイムで実行されます。 既定では、関数アプリは Functions ランタイムの最新の 4.x バージョンで作成されます。 関数アプリは、サポートされているメジャー バージョン上で実行されている場合にのみサポートされます。 この記事では、必要に応じて特定のバージョンをターゲットにする、または "ピン留めする" ように、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. [設定] を展開してから、[構成] を選択します。

  3. [関数のランタイム設定] タブ内の、[ランタイム バージョン] をメモに取ってください。 この例では、バージョンは [~4] に設定されています。

    ランタイム バージョンを表示する方法を示すスクリーンショット。

特定のバージョンに固定する

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. [設定] を展開してから、[構成] を選択します。

  3. [関数のランタイム設定] タブ内の、[ランタイム バージョン] をメモに取ってください。 この例では、バージョンは [~4] に設定されています。

    ランタイム バージョンを表示する方法を示すスクリーンショット。

  1. アプリを特定のマイナー バージョンに固定するには、左側のペイン内で [設定] を展開してから、[環境変数] を選択します。

  2. [アプリ設定] タブから、[FUNCTIONS_EXTENSION_VERSION] を選択し、[値] を必要なマイナー バージョンに変更してから、[適用] を選択します。

  3. [適用] を選択してから、[確認] を選択して変更を適用し、アプリを再起動します。

アプリケーション設定に変更が加えられると、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を実行してサインインした後に、このコマンドを実行することもできます。

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

次のステップ