在 Azure Functions 中,对语言堆栈的支持仅限于 特定版本。 随着新版本的推出,你可能希望更新函数应用以利用新功能。 Functions 中的支持也可以结束旧版本,并且通常与社区支持终止时间线保持一致。 有关详细信息,请参阅 语言运行时支持策略。 有关各种语言支持的版本,请参阅 运行时版本的语言。
为了帮助确保函数应用继续获得支持,请按照本文中的说明将其更新到最新的可用版本。 更新函数应用的方式取决于以下几个因素:
- 用于开发函数应用的语言。 请确保选择本文顶部的编程语言。
- 函数应用在 Azure 中运行的作系统:Windows 或 Linux。
-
托管计划。
注意
本文介绍如何更新使用 独立辅助角色模型的函数应用的 .NET 版本。 如果函数应用在较旧版本的 .NET 上运行并使用 进程内模型,请考虑以下选项:
先决条件
- 拥有有效订阅的 Azure 帐户。
免费创建一个。
- 托管在以下 Functions 计划之一中的函数应用:
准备函数应用
在 Azure 中更新函数应用的堆栈配置之前,请完成以下部分中的任务。
在本地验证函数应用
在新的目标版本本地测试和验证函数应用代码。
迁移至最新的 Functions 运行时
确保函数应用在最新版本的 Functions 运行时(版本 4.x)上运行。 可以在 Azure 门户中或使用 Azure CLI 来确定运行时版本。
使用以下步骤确定 Functions 运行时版本:
在 Azure 门户中,找到并选择函数应用。 在侧菜单上,选择 “设置>配置”。
转到 “函数运行时设置 ”选项卡并检查 运行时版本 值。 函数应用应在 Functions 运行时版本 4.x 上运行(~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 设置。
发布函数应用更新
如果更新了函数应用以在新版本上正确运行,请在更新函数应用的堆栈配置之前发布函数应用更新。
将更新的函数应用发布到过渡槽时,请确保按照本文其余部分中特定于槽位的更新说明进行作。 稍后,将已更新的过渡槽交换到生产环境中。
更新堆栈配置
更新堆栈配置的方式取决于函数应用是在 Windows 上运行还是在 Azure 中的 Linux 上运行。
使用过渡槽时,请确保将更新定向到正确的槽。
按照以下步骤更新 Java 版本:
在 Azure 门户中,找到并选择函数应用。 在侧菜单上,选择 “设置>配置”。 如果有暂存槽,请选择具体槽位。
在“常规设置”选项卡中,将“Java 版本”更新到所需版本。
选择“保存”。 收到重启通知后,请选择“ 继续”。
使用以下步骤更新 .NET 版本:
在 Azure 门户中,找到并选择函数应用。 在侧菜单上,选择 “设置>配置”。 如果有暂存槽,请选择具体槽位。
在“常规设置”选项卡中,将“.NET 版本”更新到所需版本。
选择“保存”。 收到重启通知后,请选择“ 继续”。
使用以下步骤更新 PowerShell 版本:
在 Azure 门户中,找到并选择函数应用。 在侧菜单上,选择 “设置>配置”。 如果有暂存槽,请选择具体槽位。
在“常规设置”选项卡中,将“PowerShell Core 版本”更新到所需版本。
选择“保存”。 收到重启通知后,请选择“ 继续”。
Windows 不支持 Python 应用。 请改为转到 “Linux ”选项卡。
按照以下步骤更新 Java 版本:
在 Azure 门户中,找到并选择函数应用。 在侧菜单上,选择 “设置>配置”。 如果有暂存槽,请选择具体槽位。
在“常规设置”选项卡中,将“Java 版本”更新到所需版本。
选择“保存”。 收到重启通知后,请选择“ 继续”。
使用以下步骤更新 .NET 版本:
在 Azure 门户中,找到并选择函数应用。 在侧菜单上,选择 “设置>配置”。 如果有暂存槽,请选择具体槽位。
在“常规设置”选项卡中,将“.NET 版本”更新到所需版本。
选择“保存”。 收到重启通知后,请选择“ 继续”。
使用以下步骤更新 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 参数。
更新版本后,函数应用将重启。
交换槽
如果使用过渡槽来部署代码项目并更新设置,请将过渡槽交换到生产中。 有关详细信息,请参阅交换槽。
相关内容