如何設定 Azure Functions 執行階段目標版本How to target Azure Functions runtime versions

函式應用程式可在特定版本的 Azure Functions 執行階段中執行。A function app runs on a specific version of the Azure Functions runtime. 主要版本有兩種: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" 代表 2.x 或 "~1" 代表 1.x),當新版本推出時,函數應用程式會自動更新到執行階段的新次要版本。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. 若要避免這個情況, <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate>請在您.csproj的檔案中新增屬性。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" 代表 1.x 執行階段而 "~2" 代表 2.x。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 入口網站中進行這項變更,而不是直接變更該設定。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 入口網站From the Azure portal

請使用下列程序,檢視並更新函式應用程式目前使用的執行階段版本。Use the following procedure to view and update the runtime version currently used by a function app.

  1. Azure 入口網站中,瀏覽至函式應用程式。In the Azure portal, browse to your function app.

  2. 在 [設定的功能] 下,選擇 [函式應用程式設定] 。Under Configured Features, choose Function app settings.

    選取函數應用程式設定

  3. 在 [函數應用程式設定] 索引標籤上,找到 [執行階段版本] 。In the Function app settings tab, locate the Runtime version. 請注意特定的執行階段版本和要求的主要版本。Note the specific runtime version and the requested major version. 在下列範例中,版本設定為 ~2In the example below, the version is set to ~2.

    選取函數應用程式設定

  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 入口網站, 您無法變更已包含函式之函式應用程式的執行階段版本。Using the Azure portal, you can't change the runtime version for a function app that already contains functions.

從 Azure CLIFrom the Azure CLI

您也可以從 Azure CLI 檢視並設定 FUNCTIONS_EXTENSION_VERSIONYou 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 (代表 2.x 版本)。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. 在執行 az login 登入之後,您也可以使用本機 Azure CLI 來執行此命令。You can also use the Azure CLI locally to execute this command after executing az login to sign in.

後續步驟Next steps