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

选择编程语言

对 Azure Functions 中任何给定语言堆栈的支持仅限于特定版本。 随着新版本的推出,你可能希望更新应用以利用其功能。 在旧版本中,Functions 中的支持也可能结束,结束时间通常与社区支持终止时间线保持一致。 有关详细信息,请参阅语言运行时支持策略。 若要确保应用继续获得支持,应按照本文中概述的说明将其更新到最新的可用版本。

更新函数应用的方式取决于:

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

备注

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

准备更新

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

1. 在本地验证函数

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

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

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

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

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

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

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

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

2. 移动到最新的 Functions 运行时

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

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

  1. Azure 门户中,找到函数应用,然后选择左侧“设置”下的“配置”。

  2. 选择“函数运行时设置”选项卡,检查运行时版本值以查看函数应用是否在 4.x 版的 Functions 运行时 (~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. 选择“保存”,当收到重启通知时,选择“继续”

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

交换槽

如果已在过渡槽中执行代码项目部署和更新设置,则最终需要将过渡槽交换到生产槽。 有关详细信息,请参阅交换槽

后续步骤