如何設定 Azure Functions 執行階段目標版本

函式應用程式可在特定版本的 Azure Functions 執行階段中執行。 根據預設,函式應用程式會在 Functions 運行時間的最新 4.x 版本中建立。 只有在支援的主要版本執行時,才支援您的函式應用程式。 本文說明如何在 Azure 中設定函式應用程式,以目標或 在需要時釘選 至特定版本。

以特定版本為目標的方式取決於您執行的是 Windows 或 Linux。 本文的這個版本支援 Windows。 選擇文章頂端的作業系統。

以特定版本為目標的方式取決於您執行的是 Windows 或 Linux。 本文的這個版本支援Linux。 選擇文章頂端的作業系統。

重要

可能的話,您應該一律在最新支援的 Azure Functions 運行時間版本上執行函式。 當系統指示這麼做時,您應該只將應用程式釘選到特定版本,因為最新版本發生問題。 一旦函式可以正確執行,您應該一律移至最新的運行時間版本。

在本機開發期間,您已安裝的 Azure Functions Core Tools 版本必須符合 Azure 中函式應用程式所使用的主要運行時間版本。 如需詳細資訊,請參閱 Core Tools 版本

更新您的運行時間版本

可能的話,您應該一律在最新支援的 Azure Functions 運行時間版本上執行函式應用程式。 如果您的函式應用程式目前在舊版的運行時間上執行,您應該將應用程式移轉至 4.x 版

當您的應用程式具有現有的函式時,您必須先採取預防措施,才能移至較新的主要運行時間版本。 下列文章詳細說明主要版本之間的重大變更,包括特定語言的重大變更。 其也會為您提供成功移轉現有函式應用程式的逐步指示。

若要判斷目前的運行時間版本,請參閱 檢視目前的運行時間版本

檢視目前的運行時間版本

您可以透過下列其中一種方式檢視函式應用程式的目前執行時間版本:

請使用下列程序,檢視並更新函式應用程式目前使用的執行階段版本。

  1. Azure 入口網站中,瀏覽至函式應用程式。

  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 公告中宣布。

注意

當您嘗試從 Visual Studio 發佈至釘選到特定次要版本的運行時間應用程式時,對話方塊會提示您更新至最新版本或取消發布。 若要避免當您必須使用特定次要版本時進行這項檢查,請在檔案.csproj中新增 <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> 屬性。

使用下列其中一種方法,暫時將您的應用程式釘選到特定版本的運行時間:

請使用下列程序,檢視並更新函式應用程式目前使用的執行階段版本。

  1. Azure 入口網站中,瀏覽至函式應用程式。

  2. 在 [設定] 底下,選擇 [組態]。 在 [函式執行階段設定] 索引標籤上,找到 [執行階段版本]。 記下該特定執行階段版本。 在下列範例中,版本設定為 ~4

    Screenshot showing how to view the runtime version.

  1. 若要將您的應用程式釘選到特定次要版本,請選取 [應用程式設定>] FUNCTIONS_EXTENSION_VERSION,將 [值] 變更為所需的次要版本,然後選取 [確定]。

  2. 選取 [儲存>繼續] 以套用變更並重新啟動應用程式。

函式應用程式會在對應用程式設定進行變更之後重新啟動。

若要將函式應用程式釘選到 Linux 上的特定執行時間版本,請在網站設定linuxFxVersion設定版本特定的基底映射 URL,格式為 DOCKER|<PINNED_VERSION_IMAGE_URI>

重要

Linux 上釘選的函數應用程式不會收到定期安全性和主機功能更新。 除非技術支援人員建議,否則請針對您的語言和版本使用 FUNCTIONS_EXTENSION_VERSION 設定和標準 linuxFxVersion 值,例如 Python|3.9。 如需有效值,請參閱 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> 取代為技術支援人員為您提供的特定映像值。

您可以從 Azure Cloud Shell 執行這些命令,方法是在上述程式代碼範例中選擇 [開啟 Cloud Shell]。 在執行 az login 以登入之後,您也可以使用本機 Azure CLI 來執行此命令。

函數應用程式會在變更網站 config 後重新啟動。

下一步