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

関数アプリは、Azure Functions ランタイムの特定のバージョンで実行されます。A function app runs on a specific version of the Azure Functions runtime. メジャー バージョンには、次の 2 つがあります:1.x と 2.xThere are two major versions: 1.x and 2.x. 既定では、作成される関数アプリはバージョン 2.x のランタイムです。By default, function apps that are created version 2.x of the runtime. この記事では、選択したバージョンで実行されるように Azure の関数アプリを構成する方法について説明します。This article explains how to configure a function app in Azure to run on the version you choose. 特定のバージョン用にローカル開発環境を構成する方法については、「Azure Functions をローカルでコーディングしてテストする」を参照してください。For information about how to configure a local development environment for a specific version, see Code and test Azure Functions locally.

自動および手動でのバージョンの更新Automatic and manual version updates

Azure Functions を使用すると、関数アプリ内で FUNCTIONS_EXTENSION_VERSION アプリケーション設定を使用することで、ランタイムの特定のバージョンをターゲットにすることができます。Azure Functions lets you target a specific version of the runtime by using the FUNCTIONS_EXTENSION_VERSION application setting in a function app. 関数アプリは、新しいバージョンへの移行を明示的に選択しない限り、指定されたメジャー バージョンに保持されます。The function app is kept on the specified major version until you explicitly choose to move to a new version.

メジャー バージョン (2.x の場合は "~2"、1.x の場合は "~1") のみを指定した場合、関数アプリは、ランタイムの新しいマイナー バージョンが利用可能になった時点で、自動的に新しいマイナー バージョンに更新されます。If you specify only the major version ("~2" for 2.x or "~1" for 1.x), the function app is automatically updated to new minor versions of the runtime when they become available. 新しいマイナー バージョンには、重大な変更は導入されません。New minor versions do not introduce breaking changes. マイナー バージョン (たとえば "2.0.12345") を指定した場合、関数アプリは、明示的にバージョンを変更するまで、その特定のバージョンに固定されます。If you specify a minor version (for example, "2.0.12345"), the function app is pinned to that specific version until you explicitly change it.

注意

Azure Functions の特定のバージョンに固定された後で、Visual Studio を使用して Azure に発行しようとすると、最新のパ―ジョンへのアップロードまたは発行の取り消しを求めるダイアログ ウィンドウが表示されます。If you pin to a specific version of Azure Functions, and then try to publish to Azure using Visual Studio, a dialog window will pop up prompting you to update to the latest version or cancel the publish. これを回避するには、.csproj ファイルに <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> プロパティを追加します。To avoid this, add the <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> property in your .csproj file.

新しいバージョンが公開されると、ポータルで確認のメッセージが表示され、そのバージョンに移行することができます。When a new version is publicly available, a prompt in the portal gives you the chance to move up to that version. 新しいバージョンに移行した後は、FUNCTIONS_EXTENSION_VERSION アプリケーション設定を使用して、いつでも以前のバージョンに戻すことができます。After moving to a new version, you can always use the FUNCTIONS_EXTENSION_VERSION application setting to move back to a previous version.

ランタイム バージョンを変更するたびに、関数アプリが再起動されます。A change to the runtime version causes a function app to restart.

自動更新を有効にするために FUNCTIONS_EXTENSION_VERSION アプリ設定で設定できる値は、現在、1.x ランタイムでは "~1"、2.x では "~2" です。The values you can set in the FUNCTIONS_EXTENSION_VERSION app setting to enable automatic updates are currently "~1" for the 1.x runtime and "~2" for 2.x.

現在のランタイム バージョンの表示と更新View and update the current runtime version

関数アプリによって使用されるランタイム バージョンを変更できます。You can change the runtime version used by your function app. 破壊的変更の可能性があるため、ランタイム バージョンの変更は、関数アプリで関数を作成する前にのみ実行できます。Because of the potential of breaking changes, you can only change the runtime version before you have created any functions in your function app. ランタイム バージョンは FUNCTIONS_EXTENSION_VERSION の設定によって決定されますが、この変更はその設定の直接の変更によってではなく、Azure Portal で行う必要があります。Although the runtime version is determined by the FUNCTIONS_EXTENSION_VERSION setting, you should make this change in the Azure portal and not by changing the setting directly. これは、ポータルが変更を検証し、必要に応じてその他の関連する変更を行うためです。This is because the portal validates your changes and makes other related changes as needed.

Azure portal からFrom the Azure portal

関数アプリで現在使用されているランタイム バージョンを表示して更新するには、次の手順に従います。Use the following procedure to view and update the runtime version currently used by a function app.

  1. Azure portal で、関数アプリに移動します。In the Azure portal, browse to your function app.

  2. [構成済みの機能] で、 [Function App の設定] を選択します。Under Configured Features, choose Function app settings.

    [Function App の設定] を選択する

  3. [Function App の設定] タブで、 [ランタイム バージョン] を探します。In the Function app settings tab, locate the Runtime version. 特定のランタイム バージョンと要求されたメジャー バージョンをメモします。Note the specific runtime version and the requested major version. 以下の例では、バージョンが ~2 に設定されています。In the example below, the version is set to ~2.

    [Function App の設定] を選択する

  4. バージョン 1.x ランタイムに関数アプリを固定するには、 [ランタイム バージョン][~1] を選択します。To pin your function app to the version 1.x runtime, choose ~1 under Runtime version. アプリに関数がある場合、このスイッチは無効です。This switch is disabled when you have functions in your app.

  5. ランタイム バージョンを変更したときは、 [概要] タブに戻り、 [再起動] を選択してアプリを再起動します。When you change the runtime version, go back to the Overview tab and choose Restart to restart the app. 関数アプリがバージョン 1.x ランタイムでの実行を再開します。関数を作成するときは、バージョン 1.x のテンプレートを使用します。The function app restarts running on the version 1.x runtime, and the version 1.x templates are used when you create functions.

注意

Azure portal では、既に関数が含まれている関数アプリのランタイム バージョンを変更することはできません。Using the Azure portal, you can't change the runtime version for a function app that already contains functions.

Azure CLI からFrom the Azure CLI

Azure CLI から FUNCTIONS_EXTENSION_VERSION を表示および設定することもできます。You can also view and set the FUNCTIONS_EXTENSION_VERSION from the Azure CLI.

注意

その他の設定はランタイム バージョンの影響を受ける可能性があるため、ポータルでバージョンを変更する必要があります。Because other settings may be impacted by the runtime version, you should change the version in the portal. ランタイム バージョンを変更すると、ポータルで自動的に、Node.js のバージョンやランタイム スタックなどのその他の必要な更新が行われます。The portal automatically makes the other needed updates, such as Node.js version and runtime stack, when you change runtime versions.

Azure CLI を使用して、az functionapp config appsettings set コマンドで現在のランタイム バージョンを表示します。Using the Azure CLI, view the current runtime version with the az functionapp config appsettings set command.

az functionapp config appsettings list --name <function_app> \
--resource-group <my_resource_group>

このコードでは、<function_app> をお使いの関数アプリの名前に置き換えます。In this code, replace <function_app> with the name of your function app. また、<my_resource_group> をお使いの関数アプリのリソース グループの名前に置き換えます。Also replace <my_resource_group> with the name of the resource group for your function app.

明確にするために切り捨てられていますが、次の出力に FUNCTIONS_EXTENSION_VERSION が表示されます。You see the FUNCTIONS_EXTENSION_VERSION in the following output, which has been truncated for clarity:

[
  {
    "name": "FUNCTIONS_EXTENSION_VERSION",
    "slotSetting": false,
    "value": "~2"
  },
  {
    "name": "FUNCTIONS_WORKER_RUNTIME",
    "slotSetting": false,
    "value": "dotnet"
  },
  
  ...
  
  {
    "name": "WEBSITE_NODE_DEFAULT_VERSION",
    "slotSetting": false,
    "value": "8.11.1"
  }
]

az functionapp config appsettings set コマンドで、関数アプリの FUNCTIONS_EXTENSION_VERSION の設定を更新できます。You can update the FUNCTIONS_EXTENSION_VERSION setting in the function app with the az functionapp config appsettings set command.

az functionapp config appsettings set --name <function_app> \
--resource-group <my_resource_group> \
--settings FUNCTIONS_EXTENSION_VERSION=<version>

<function_app> をお使いの関数アプリの名前に置き換えます。Replace <function_app> with the name of your function app. また、<my_resource_group> をお使いの関数アプリのリソース グループの名前に置き換えます。Also replace <my_resource_group> with the name of the resource group for your function app. また、<version> を 1.x ランタイムの有効なバージョンまたはバージョン 2.x の ~2 に置き換えます。Also, replace <version> with a valid version of the 1.x runtime or ~2 for version 2.x.

このコマンドは、上記のコード サンプルの [テスト] をクリックすることで、Azure Cloud Shell から実行できます。You can run this command from the Azure Cloud Shell by choosing Try it in the preceding code sample. また、Azure CLI をローカルに使用して、az ログインを実行してサインインした後に、このコマンドを実行することもできます。You can also use the Azure CLI locally to execute this command after executing az login to sign in.

次の手順Next steps