分享方式:


如何設定 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 版本,請遵循下列步驟:

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

  2. 展開 [設定],然後選取 [設定]

  3. 在 [函數執行階段設定] 索引標籤中,找到 [run-time 版本]。 在此範例中,版本設定為 ~4

    顯示如何檢視 run-time 版本的螢幕擷取畫面。

釘選至特定版本

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 版本,請遵循下列步驟:

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

  2. 展開 [設定],然後選取 [設定]

  3. 在 [函數執行階段設定] 索引標籤中,找到 [run-time 版本]。 在此範例中,版本設定為 ~4

    顯示如何檢視 run-time 版本的螢幕擷取畫面。

  1. 若要將您的應用程式釘選到特定的次要版本,請在左側窗格中展開 [設定],然後選取 [環境變數]

  2. 從 [應用程式設定] 索引標籤中,選取 [FUNCTIONS_EXTENSION_VERSION],將 [值] 變更為必要的次要版本,然後選取 [套用]

  3. 選取 [套用],然後選取 [確認],以套用變更並重新啟動應用程式。

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

若要將函數應用程式釘選到 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 後重新啟動。

下一步