更新 Azure Functions 中的語言堆疊版本
Azure Functions 中任何指定語言堆疊的支援僅限於特定版本。 當新版本可供使用時,您可能會想要更新應用程式以利用其功能。 Functions 也可能會結束舊版本支援,通常與社群結束支援的時間表一致。 如需詳細資訊,請參閱語言執行階段支援原則。 為了確保您的應用程式能夠繼續獲得支援,您應遵循本文所述的指示,將應用程式更新到最新的可用版本。
更新函數應用程式的方式取決於:
- 您用來撰寫函數的語言;請務必在文章頂端選擇您使用的程式設計語言。
- 您的應用程式在 Azure 中執行的作業系統:Windows 或 Linux。
- 主控方案。
準備更新
在 Azure 中更新函數應用程式的堆疊設定之前,您應該先完成下列工作:
1.在本機驗證您的函數
請務必使用新的目標版本在本機測試和驗證函數程式碼。
2.移至最新的 Functions 執行階段
請確定您的函數應用程式是在最新版的 Functions 執行階段 (4.x 版) 上執行。 您可以在 Azure 入口網站或使用 Azure CLI 來判斷執行階段版本。
使用下列步驟來判斷您的 Functions 執行階段版本:
在 Azure 入口網站中,找出您的函數應用程式,然後在左側的 [設定] 下方選取 [設定]。
選取 [函數執行階段設定] 索引標籤,然後檢查 [執行階段版本] 值,查看您的函數應用程式是否在 4.x 版的 Functions 執行階段上執行 (~4
)。
使用 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 入口網站中,找出您的函數應用程式,然後選取左側的 [設定]。 使用預備位置時,請務必先選取特定位置。
在 [一般設定] 索引標籤中,將 [.NET 版本] 更新為所需的版本。
選取 [儲存],並在收到重新開機通知時選取 [繼續]。
Windows 不支援 Python 應用程式。 請改為選取 [Linux] 索引標籤。
請使用下列步驟來更新 Java 版本:
在 Azure 入口網站中,找出您的函數應用程式,然後選取左側的 [設定]。 使用預備位置時,請務必先選取特定位置。
在 [一般設定] 索引標籤中,將 [Java 版本] 更新為所需的版本。
選取 [儲存],並在收到重新開機通知時選取 [繼續]。
請使用下列步驟來更新 .NET 版本:
在 Azure 入口網站中,找出您的函數應用程式,然後選取左側的 [設定]。 使用預備位置時,請務必先選取特定位置。
在 [一般設定] 索引標籤中,將 [.NET 版本] 更新為所需的版本。
選取 [儲存],並在收到重新開機通知時選取 [繼續]。
請使用下列步驟來更新 Node.js 版本:
在 Azure 入口網站中,找出您的函數應用程式,然後選取左側的 [設定]。 使用預備位置時,請務必先選取特定位置。
在 [一般設定] 索引標籤中,將 [Node.js 版本] 更新為所需的版本。
選取 [儲存],並在收到重新開機通知時選取 [繼續]。 這項變更會更新 WEBSITE_NODE_DEFAULT_VERSION
應用程式設定。
使用下列步驟來更新 PowerShell 版本:
在 Azure 入口網站中,找出您的函數應用程式,然後選取左側的 [設定]。 使用預備位置時,請務必先選取特定位置。
在 [一般設定] 索引標籤中,將 [.NET 版本] 更新為所需的版本。
選取 [儲存],並在收到重新開機通知時選取 [繼續]。
Windows 不支援 Python 應用程式。 請改為選取 [Linux] 索引標籤。
在 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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
在此範例中,分別將 <APP_NAME>
和 <RESOURCE_GROUP>
取代為您的函數應用程式名稱和資源群組名稱。 此外,請將 <VERSION>
取代為您要更新的支援語言版本。 如果您未使用預備位置,請移除 --slot
參數。
注意
以使用量方案執行時,您無法變更 Python 版本。
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 == '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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
在此範例中,分別將 <APP_NAME>
和 <RESOURCE_GROUP>
取代為您的函數應用程式名稱和資源群組名稱。 另請將 <LANGUAGE|VERSION>
取代為更新的 linuxFxVersion
。 如果您未使用預備位置,請移除 --slot
參數。
您的函數應用程式會在您更新版本之後重新啟動。
交換位置
如果您已在預備位置執行程式碼專案部署和更新設定,則最後必須將預備位置與生產位置交換。 如需詳細資訊,請參閱交換位置。
下一步