函式應用程式可在特定版本的 Azure Functions 執行階段中執行。 預設情況下,你會在最新的 4.x 版 Functions 執行階段環境中建立函式應用程式。 只有在支援的主要版本上執行時,才會支援您的函式應用程式。 本文說明如何在 Azure 中設定函式應用程式,以將其鎖定或釘選到特定版本的 Functions 執行階段 (如有需要)。
考慮事項
在鎖定特定執行版本時,請考慮以下幾點:
-
Flex Consumption 計劃只能在版本 4.x 的執行階段中運行。 因為 Flex Consumption 方案不支援該應用程式
FUNCTIONS_EXTENSION_VERSION設定,應用程式在此方案執行時無法鎖定特定執行時版本。 - 針對特定目標版本的方式,取決於您執行的是 Windows 或 Linux。
- 本文針對 Windows 或 Linux 兩種情況。 選擇文章頂端的作業系統。
- 盡可能使用最新支援的執行版本來執行你的應用程式。 只有在因最新版本有問題而被指示將您的應用程式釘選到特定版本時,才會將其釘選為特定版本。 一旦您的函式可以正確執行,請隨時移至最新的執行階段版本。
- 在本機開發期間,您已安裝的 Azure Functions Core Tools 版本必須符合 Azure 中函式應用程式所使用的主要執行階段版本。 如需詳細資訊,請參閱 Core Tools 版本。
更新您的執行階段版本
如果可能,務必在最新支援的 Azure Functions 執行環境上執行函式應用程式。 如果你的函式應用程式目前運行的是較舊的執行版本,請將應用程式遷移到 4.x 版本。
當您的應用程式存在函式時,您必須先採取預防措施,才能移至較新的主要執行階段版本。 下列文章詳細說明主要版本之間的重大變更,包括特定語言的重大變更。 它們也會為您提供成功移轉現有函式應用程式的逐步指示。
若要判斷目前的執行階段版本,請參閱檢視目前的執行階段版本。
檢視目前的執行階段版本
您可以透過下列其中一種方式,檢視函式應用程式目前的執行階段版本:
若要檢視和更新函式應用程式目前使用的執行階段版本,請遵循下列步驟:
在 Azure 入口網站中,瀏覽至您的函式應用程式。
展開 [設定],然後選取 [組態]。
在 [函式執行階段設定] 索引標籤中,記下執行階段版本。 在此範例中,該版本會設定為
~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> 屬性。
使用下列其中一種方法,暫時將您的應用程式釘選到特定的執行階段版本:
若要檢視和更新函式應用程式目前使用的執行階段版本,請遵循下列步驟:
在 Azure 入口網站中,瀏覽至您的函式應用程式。
展開 [設定],然後選取 [組態]。
在 [函式執行階段設定] 索引標籤中,記下執行階段版本。 在此範例中,該版本會設定為
~4。
若要將您的應用程式釘選到特定的次要版本,請在左側窗格中展開 [設定],然後選取 [環境變數]。
從 [應用程式設定] 索引標籤中,選取 [FUNCTIONS_EXTENSION_VERSION],將 [值] 變更為所需的次要版本,然後選取 [套用]。
選取 [套用],然後選取 [確認],以套用變更並重新啟動該應用程式。
該函式應用程式會在變更應用程式設定後重新啟動。
要將你的函式應用程式釘選到Linux上的特定執行時版本,請在 linuxFxVersion 網站設定 中設定一個版本專屬的基礎映像URL,格式為 DOCKER|<PINNED_VERSION_IMAGE_URI>。
重要事項
Linux 上釘選的函式應用程式,不會收到定期安全性和主機功能更新。 除非技術支援人員建議,否則請針對您的語言和版本使用 FUNCTIONS_EXTENSION_VERSION 設定和標準 linuxFxVersion 值,例如 Python|3.12。 如需有效值,請參閱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 執行此命令。
該函式應用程式會在變更網站設定後重新啟動。