如何設定 Azure Functions 執行階段目標版本
函式應用程式可在特定版本的 Azure Functions 執行階段中執行。 根據預設,函式應用程式會在 Functions 執行階段最新的 4.x 版本中建立。 只有在支援的主要版本上執行時,才會支援您的函式應用程式。 本文說明如何在 Azure 中視需要將函式應用程式設定為針對或釘選到特定目標版本。
針對特定目標版本的方式取決於您執行的是 Windows 或 Linux。 本文的這個版本支援 Windows。 選擇文章頂端的作業系統。
針對特定目標版本的方式取決於您執行的是 Windows 或 Linux。 本文的這個版本支援 Linux。 選擇文章頂端的作業系統。
重要
可能的話,您應該一律在最新支援的 Azure Functions 執行階段版本上執行您的函式。 如果您收到指示,由於最新版本發生問題,您應該只將應用程式釘選到特定版本。 一旦您的函式可以正確執行,請隨時移至最新的 run-time 版本。
在本機開發期間,您已安裝的 Azure Functions Core Tools 版本必須符合 Azure 中函數應用程式所使用的主要 run-time 版本。 如需詳細資訊,請參閱 Core Tools 版本。
更新您的 run-time 版本
可能的話,您應該一律在最新支援的 Azure Functions 執行階段版本上執行您的函式應用程式。 如果您的函式應用程式目前在舊版的執行階段上執行,您應該將應用程式移轉至 4.x 版
當您的應用程式具有現有函式時,您必須先採取預防措施,才能移至較新的主要執行階段版本。 下列文章詳細說明主要版本之間的重大變更,包括特定語言的重大變更。 其也會為您提供成功移轉現有函式應用程式的逐步指示。
若要判斷目前的 run-time 版本,請參閱 檢視目前的 run-time 版本。
檢視目前的執行階段版本
您可以透過下列其中一種方式檢視函數應用程式的目前 run-time 版本:
若要檢視和更新函數應用程式目前使用的 run-time 版本,請遵循下列步驟:
在 Azure 入口網站中,瀏覽至函式應用程式。
展開 [設定],然後選取 [設定]。
在 [函數執行階段設定] 索引標籤中,找到 [run-time 版本]。 在此範例中,版本設定為
~4
。
釘選至特定版本
Azure Functions 可讓您使用 FUNCTIONS_EXTENSION_VERSION
應用程式設定,以指定函數應用程式所使用的 run-time 版本為目標。 如果您只指定主要版本 (~4
),當新版本推出時,函數應用程式會自動更新到執行階段的新次要版本。 次要版本更新會自動完成,因為新的次要版本不太可能引入會中斷函數的變更。
Linux 應用程式會使用 linuxFxVersion
網站設定,以及 FUNCTIONS_EXTENSION_VERSION
來判斷要在其中執行函數的正確 Linux 基底映像。 當您在 Linux 上建立新的函數應用程式時,執行階段會根據語言堆疊的 run-time 版本,自動為您選擇正確的基底映像。
釘選至特定 run-time 版本時,都會重新啟動函數應用程式。
當您在 FUNCTIONS_EXTENSION_VERSION
中指定特定次要版本 (例如 4.0.12345
),函數應用程式會釘選到該特定版本的執行階段,直到您明確選擇返回自動版本更新為止。 您應該只釘選到特定次要版本足夠長的時間,以解決函數應用程式使您無法將主要版本設為目標的問題。 較舊的次要版本會定期從生產環境中移除。 當您的函數應用程式釘選到稍後移除的次要版本時,函數應用程式會改為在最接近的現有版本上執行,而不是在 FUNCTIONS_EXTENSION_VERSION
中設定的版本。 次要版本移除會在 App Service 公告中宣布。
注意
當您嘗試從 Visual Studio 發佈至釘選到特定次要版本執行階段的應用程式時,對話方塊會提示您更新至最新版本或取消發佈。 若要避免當您必須使用特定次要版本時進行這項檢查,請在 .csproj
檔案中新增 <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate>
屬性。
使用下列其中一種方法,暫時將您的應用程式釘選到特定版本的執行階段:
若要檢視和更新函數應用程式目前使用的 run-time 版本,請遵循下列步驟:
在 Azure 入口網站中,瀏覽至函式應用程式。
展開 [設定],然後選取 [設定]。
在 [函數執行階段設定] 索引標籤中,找到 [run-time 版本]。 在此範例中,版本設定為
~4
。
若要將您的應用程式釘選到特定的次要版本,請在左側窗格中展開 [設定],然後選取 [環境變數]。
從 [應用程式設定] 索引標籤中,選取 [FUNCTIONS_EXTENSION_VERSION],將 [值] 變更為必要的次要版本,然後選取 [套用]。
選取 [套用],然後選取 [確認],以套用變更並重新啟動應用程式。
函式應用程式會在對應用程式設定進行變更之後重新啟動。
若要將函數應用程式釘選到 Linux 上的特定 run-time 版本,您可以在 linuxFxVersion
網站設定中以 DOCKER|<PINNED_VERSION_IMAGE_URI>
格式設定版本特定的基底映像 URL。
重要
Linux 上釘選的函數應用程式不會收到定期安全性和主機功能更新。 除非技術支援人員建議,否則請針對您的語言和版本使用 FUNCTIONS_EXTENSION_VERSION
設定和標準 linuxFxVersion
值,例如 Python|3.9
。 如需有效值,請參閱 linuxFxVersion
參考文章。
目前不支援採用使用量方案執行的 Linux 函式應用程式釘選至特定執行階段。
以下範例說明將 Node.js 16 函數應用程式釘選至特定 run-time 版本 4.14.0.3 所需的 linuxFxVersion
值範例:
DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node16
如有需要,技術支援人員可以為您提供應用程式的有效基底映像 URI。
使用下列 Azure CLI 命令來檢視和設定 linuxFxVersion
。 您目前無法在入口網站中或透過使用 Azure PowerShell 設定 linuxFxVersion
:
若要檢視目前的 run-time 版本,請使用 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 執行這些命令,方法是在上述程式碼範例中選擇 [Open Cloud Shell]。 在執行 az login
以登入之後,您也可以使用本機 Azure CLI 來執行此命令。
函數應用程式會在變更網站 config 後重新啟動。