次の方法で共有


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

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

考慮事項

特定のランタイム バージョンを対象とする場合は、次の考慮事項に注意してください。

  • Flex 従量課金プランは、ランタイムのバージョン 4.x でのみ実行されます。 Flex 従量課金プランでは FUNCTIONS_EXTENSION_VERSION アプリ設定がサポートされていないため、このプランで実行中にアプリで特定のランタイム バージョンを対象にすることはできません。
  • 特定のバージョンをターゲットにする方法は、Windows と Linux のどちらを実行しているかによって異なります。
  • この記事は、Windows または Linux に固有のものです。 記事の上部でお使いのオペレーティング システムをお選びください。
  • 可能な場合は、常にサポートされている最新のランタイム バージョンでアプリを実行します。 最新バージョンの問題が原因でアプリを特定のバージョンにピン留めするように指示された場合にのみ、アプリをピン留めします。 常に、関数が正しく動作することを確認でき次第、最新のランタイム バージョンに移行してください。
  • ローカル開発中は、インストールされている 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 上で新しい関数アプリを作成すると、ランタイムは言語スタックのランタイム バージョンに基づいて適切なベース イメージを自動的に選択します。

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

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

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.12 などのお使いの言語やバージョンの 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を実行してサインインした後に、このコマンドを実行することもできます。

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

次のステップ