在 Azure Functions 中,語言堆疊的支援僅限於 特定版本。 當有新版本可用時,建議您更新函數應用程式以利用新功能。 Functions 也可能會結束對舊版本的支援,這通常與社群結束支援的時間表一致。 如需詳細資訊,請參閱語言執行階段支援原則 (部分機器翻譯)。 如需各種語言的支援版本,請參閱依執行階段版本的語言 (部分機器翻譯)。
為了確保您的函數應用程式能夠繼續獲得支援,請遵循本文所述的指示將其更新到最新的可用版本。 更新函數應用程式的方式取決於數個因素:
- 您用來開發函數應用程式的語言。 請務必在本文頂部選取您的程式設計語言。
- 您的函數應用程式在 Azure 中執行的作業系統:Windows 或 Linux。
-
主控方案。
附註
本文說明如何更新使用隔離的背景工作角色模型之函數應用程式的 .NET 版本。 如果您的函數應用程式在舊版 .NET 上執行,並使用內含式模型,請考慮下列選項:
先決條件
- 具有有效訂閱的 Azure 帳戶。
免費創建一個。
- 裝載於下列其中一個 Functions 方案中的函數應用程式:
準備函數應用程式
在 Azure 中更新函數應用程式的堆疊設定之前,請先完成下列各節中的工作。
在本機驗證函數應用程式
使用新的目標版本在本機測試並驗證函數應用程式程式碼。
移至最新的 Functions 執行環境
請確定您的函式應用程式會在最新版的 Functions 執行時間 (4.x 版) 上執行。 您可以在 Azure 入口網站或使用 Azure CLI 來判斷執行階段版本。
使用下列步驟來判斷您的 Functions 執行階段版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。
移至 [函式執行階段設定] 索引標籤,然後檢查 [執行階段版本] 值。 您的函式應用程式應該在 Functions 執行階段 (~4) 4.x 版本上執行。
使用 az functionapp config appsettings list 命令來檢查您的運行時間版本:
az functionapp config appsettings list --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>"
FUNCTIONS_EXTENSION_VERSION 設定會設定執行階段版本。
~4 的值表示您的函數應用程式已經是在最新主要版本 (4.x) 的最新次要版本上執行。
如果您需要將函數應用程式更新至 4.x 版,請參閱將應用程式從 Azure Functions 1.x 版移轉至 4.x 版 (部分機器翻譯) 或將應用程式從 Azure Functions 3.x 版移轉至 4.x 版 (部分機器翻譯)。 請遵循這些文章中的指示,而不只是變更 FUNCTIONS_EXTENSION_VERSION 設定。
發佈函數應用程式更新
如果您更新了函數應用程式以在新版本上正確執行,請先發佈函數應用程式更新,再更新函數應用程式的堆疊組態。
當您將更新的函數應用程式發佈至預備位置時,請務必遵循本文其餘部分的位置特定更新指示。 稍後會將更新的預備位置與生產位置交換。
更新堆疊設定
更新堆疊組態的方式取決於您的函數應用程式是在 Azure 中的 Windows 還是 Linux 上執行。
當您使用預備位置時,請務必將更新的目標設為正確的位置。
請使用下列步驟來更新 Java 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [Java 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。
請使用下列步驟來更新 .NET 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [.NET 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。
請使用下列步驟來更新 Node.js 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [Node.js 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。 這項變更會更新 WEBSITE_NODE_DEFAULT_VERSION 應用程式設定。
使用下列步驟來更新 PowerShell 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [PowerShell Core 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。
Windows 不支援 Python 應用程式。 改為移至 [Linux] 索引標籤。
請使用下列步驟來更新 Java 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [Java 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。
請使用下列步驟來更新 .NET 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [.NET 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。
請使用下列步驟來更新 Node.js 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [Node.js 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。 這項變更會更新 WEBSITE_NODE_DEFAULT_VERSION 應用程式設定。
使用下列步驟來更新 PowerShell 版本:
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [PowerShell Core 版本] 更新為所需的版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。
在 Azure 入口網站中,找出並選取您的函式應用程式。 在側邊功能表上,選取 [設定]>[組態]。 如果您有預備位置,請選取特定位置。
在 [一般設定] 索引標籤上,將 [Python 版本] 更新為所需的版本。
附註
當您的函數應用程式在使用量方案中執行時,您無法變更 Python 版本。
選取 [儲存]。 當您收到重新啟動通知時,請選取 [繼續]。
Windows 不支援 Python 函數應用程式。 改為移至 [Linux] 索引標籤。
az functionapp list-runtimes --os "windows" --query "[?runtime == 'java'].{Version:version}" --output table
az functionapp config set --java-version "<VERSION>" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
az functionapp list-runtimes --os "windows" --query "[?runtime == 'dotnet-isolated'].{Version:version}" --output table
執行 az functionapp config set 命令來更新函式應用程式的 .NET 版本:
az functionapp config set --net-framework-version "v<VERSION>.0" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
使用 az functionapp list-runtimes 命令來檢視語言堆疊支援的版本值(Node.js)。 然後,執行 az functionapp config set 命令來更新函式應用程式的 Node.js 版本:
az functionapp list-runtimes --os "windows" --query "[?runtime == 'node'].{Version:version}" --output table
az functionapp config appsettings set --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --settings "WEBSITE_NODE_DEFAULT_VERSION=~<VERSION>" --slot "staging"
az functionapp list-runtimes --os "windows" --query "[?runtime == 'powershell'].{Version:version}" --output table
az functionapp config set --powershell-version "<VERSION>" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
在上述命令中,分別將 <FUNCTION_APP_NAME> 和 <RESOURCE_GROUP_NAME> 取代為您的函數應用程式名稱和資源群組名稱。 此外,請將 <VERSION> 取代為您要更新的支援語言版本。 如果您未使用預備位置,請移除 --slot 參數。
附註
當您的函數應用程式在使用量方案中執行時,您無法變更 Python 版本。
az functionapp list-runtimes --os linux --query "[?runtime == 'java'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'dotnet-isolated'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'node'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'python'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'powershell'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp config set --linux-fx-version "<LANGUAGE|VERSION>" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
在上述命令中,分別將 <FUNCTION_APP_NAME> 和 <RESOURCE_GROUP_NAME> 取代為您的函數應用程式名稱和資源群組名稱。 另請將 <LANGUAGE|VERSION> 取代為更新的 linuxFxVersion 值。 如果您未使用預備位置,請移除 --slot 參數。
您的函數應用程式會在您更新版本之後重新啟動。
交換位置
如果您使用預備位置來部署程式碼專案並更新設定,請將預備位置切換到生產環境。 如需詳細資訊,請參閱交換位置。
相關內容