更新 Azure Functions 中的语言堆叠版本

选择编程语言

在 Azure Functions 中,对语言堆栈的支持仅限于 特定版本。 随着新版本的推出,你可能希望更新应用以利用其功能。 在旧版本中,Functions 中的支持也可能结束,结束时间通常与社区支持终止时间线保持一致。 有关详细信息,请参阅语言运行时支持策略

若要确保应用继续获得支持,请按照本文中的说明将其更新为最新的可用版本。 更新函数应用的方式取决于:

  • 用于编写函数的语言。 请确保选择本文顶部的编程语言。
  • 在哪种操作系统上的 Azure 中运行应用:Windows 或 Linux。
  • 托管计划

备注

本文介绍如何使用独立辅助角色模型更新 .NET 版本的应用。 在使用进程内模型的较旧版本 .NET 上运行的应用可以更新为面向 .NET 8,也可以从进程内模型迁移到独立辅助角色模型

先决条件

在 Azure 中更新函数应用的堆栈配置之前,请完成以下任务:

在本地验证功能

请确保在新的目标版本本地测试和验证函数代码。

使用以下步骤在本地计算机上更新项目:

  1. 确保 已安装 .NET SDK 的目标版本

    如果以预览版为目标,请参阅 预览版 .NET 版本的 Functions 指南 ,以确保支持该版本。 使用 .NET 预览版可能需要执行更多步骤。

  2. 更新对 最新版本的 Microsoft.Azure.Functions.WorkerMicrosoft.Azure.Functions.Worker.Sdk 的引用。

  3. 将项目的目标框架更新到新版本。 对于 C# 项目,必须更新 <TargetFramework> 文件中的 .csproj 元素。 有关版本的详细信息,请参阅 目标框架

    更改项目的目标框架可能还需要更改项目代码之外的工具链部分。 例如,在 Visual Studio Code 中,可能需要通过用户设置或项目azureFunctions.deploySubpath的文件更新.vscode/settings.json扩展设置。 作为生成步骤或 CI/CD 管道的一部分,检查是否存在对框架版本的任何依赖项,这些依赖项存在于项目代码之外。

  4. 对新 .NET 版本所需的项目代码进行任何更新。 查看版本的发行说明以获取详情。 还可以使用 .NET 升级助手 来帮助更新代码,以响应主要版本的更改。

进行这些更改后,请重新生成项目并对其进行测试,以确认应用按预期运行。

迁移至最新的 Functions 运行时

确保函数应用在最新版本的 Functions 运行时(版本 4.x)上运行。 可以在 Azure 门户中或使用 Azure CLI 来确定运行时版本。

使用以下步骤确定 Functions 运行时版本:

  1. Azure 门户中,找到并选择函数应用。 在左侧菜单中,选择 “设置>配置”。

  2. 选择 “函数运行时设置 ”选项卡并检查 运行时版本 值。 函数应用应在 Functions 运行时版本 4.x 上运行(~4)。

    如何在 Azure 门户中查看应用的 Functions 运行时版本的屏幕截图。

如果需要先将函数应用更新到版本 4.x,请参阅将应用从 Azure Functions 版本 1.x 迁移到版本 4.x将应用从 Azure Functions 版本 3.x 迁移到版本 4.x。 请按照这些文章中的说明进行操作,而不仅仅是更改 FUNCTIONS_EXTENSION_VERSION 设置。

发布应用更新

如果更新了应用以在新版本上正确运行,请在更新函数应用的堆栈配置之前发布应用更新。

提示

为了简化更新过程,尽量减少函数的暂停时间,并提供回滚的可能性,应将已更新的应用发布到过渡槽。 有关详细信息,请参阅 Azure Functions 部署槽

将已更新的应用发布到过渡槽时,请确保按照本文其余部分中特定于槽的更新说明进行操作。 稍后,将已更新的过渡槽交换到生产环境中。

更新堆栈配置

更新堆栈配置的方式取决于是在 Azure 中运行 Windows 还是 Linux。

使用过渡槽时,请确保将更新定向到正确的槽。

备注

只能使用 Azure 门户更新 Linux 上的高级计划专用(应用服务)计划中承载的函数应用。 对于在 消耗计划中托管的 Linux 上的应用,请使用 Azure CLI

按照以下步骤更新 Java 版本:

  1. Azure 门户找到函数应用,然后选择左侧的“配置”。 使用过渡槽时,请确保先选择特定槽。

  2. 在“常规设置”选项卡中,将“Java 版本”更新到所需版本

    如何在 Azure 门户中为函数应用设置所需 Java 版本的屏幕截图。

  3. 选择“保存”,当收到重启通知时,选择“继续”

使用以下步骤更新 .NET 版本:

  1. Azure 门户找到函数应用,然后选择左侧的“配置”。 使用过渡槽时,请确保先选择特定槽。

  2. 在“常规设置”选项卡中,将“.NET 版本”更新到所需版本

    有关如何在 Azure 门户中为函数应用设置所需 .NET 版本的屏幕截图。

  3. 选择“保存”,当收到重启通知时,选择“继续”

使用以下步骤更新 Node.js 版本:

  1. Azure 门户找到函数应用,然后选择左侧的“配置”。 使用过渡槽时,请确保先选择特定槽。

  2. 在“常规设置”选项卡中,将“Node.js 版本”更新到所需版本

    有关如何在 Azure 门户中为函数应用设置所需 Node.js 版本的屏幕截图。

  3. 选择“保存”,当收到重启通知时,选择“继续”。 此更改将更新 WEBSITE_NODE_DEFAULT_VERSION 应用程序设置。

使用以下步骤更新 PowerShell 版本:

  1. Azure 门户找到函数应用,然后选择左侧的“配置”。 使用过渡槽时,请确保先选择特定槽。

  2. 在“常规设置”选项卡中,将“.NET 版本”更新到所需版本

    有关如何在 Azure 门户中为函数应用设置所需 PowerShell 版本的屏幕截图。

  3. 选择“保存”,当收到重启通知时,选择“继续”

Windows 不支持 Python 应用。 请改为选择“Linux”选项卡

  1. Azure 门户中,找到并选择函数应用。 在左侧菜单中,选择 “设置>配置”。 如果有暂存槽,请选择具体槽位。

  2. 在“常规设置”选项卡中,将“Python 版本”更新到所需版本

    有关如何在 Azure 门户中为函数应用设置所需 Python 版本的屏幕截图。

    备注

    在消耗计划中运行时,无法更改 Python 版本。

  3. 选择“保存”,当收到重启通知时,选择“继续”

更新版本后,函数应用将重启。

交换槽

如果一直在过渡槽中执行代码项目部署和更新设置,请将过渡槽交换到生产环境中。 有关详细信息,请参阅交换槽