你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何面向 Azure Functions 运行时版本

函数应用在特定版本的 Azure Functions 运行时上运行。 默认情况下,在最新 4.x 版的 Functions 运行时中创建函数应用。 函数应用只有在受支持的主版本上运行时才会受支持。 本文介绍如何根据需要在 Azure 中配置函数应用以指定或固定到特定版本

指定特定版本的方式取决于运行的是 Windows 还是 Linux。 本文中的版本支持 Windows。 在文章顶部选择操作系统。

指定特定版本的方式取决于运行的是 Windows 还是 Linux。 本文中的版本支持 Linux。 在文章顶部选择操作系统。

重要

如果可能,应始终在支持的最新版 Azure Functions 运行时上运行函数。 应仅在因最新版本存在问题而指示将应用固定到特定版本时才这样做。 函数可以正常运行后,应始终立即更新到最新的运行时版本。

在本地开发期间,已安装的 Azure Functions Core Tools 版本必须与 Azure 中的函数应用使用的主要运行时版本匹配。 有关详细信息,请参阅 Core Tools 版本

更新运行时版本

如果可能,应始终在支持的最新版 Azure Functions 运行时上运行函数应用。 如果函数应用当前在较旧版本的运行时上运行,则应将应用迁移到版本 4.x

如果应用包含现有函数,则必须先采取预防措施,然后再迁移到更高的主要运行时版本。 以下文章详细介绍了主要版本之间的中断性变更,包括特定于语言的中断性变更。 它们还提供成功迁移现有函数应用的分步说明。

若要确定当前运行时版本,请参阅查看当前运行时版本

查看当前运行时版本

可以通过以下方法之一查看函数应用的当前运行时版本:

使用以下步骤查看并更新函数应用当前使用的运行时版本。

  1. Azure 门户中,浏览到你的函数应用。

  2. 在“设置”下,选择“配置”。 在“函数运行设置”选项卡中,定位“运行时版本”。 请注意特定的运行时版本。 在以下示例中,版本设置为 ~4

    Screenshot showing how to view the runtime version.

固定到特定版本

使用 Azure Functions,可以通过 FUNCTIONS_EXTENSION_VERSION 应用程序设置来指定给定函数应用使用的运行时版本。 如果仅指定主版本 (~4),当运行时的新次要版本可用时,函数应用将自动更新到该版本。 次要版本更新会自动完成,因为新的次要版本不应引入中断性变更。

Linux 应用使用 linuxFxVersion 站点设置FUNCTIONS_EXTENSION_VERSION 来确定运行函数的正确 Linux 基础映像。 在 Linux 上创建新的函数应用时,运行时会根据语言堆栈的运行时版本自动选择正确的基础映像。

固定到特定运行时版本会导致函数应用重启。

FUNCTIONS_EXTENSION_VERSION 中指定特定次要版本(例如 4.0.12345)时,函数应用将固定到该特定版本的运行时上,除非显式选择切换回自动更新。 应仅固定到特定次要版本,直到解决了阻止你指定主版本的任何函数应用问题。 会定期从生产环境中删除旧的次要版本。 当函数应用固定到已删除的次要版本时,将改为在最接近的现有版本上运行,而不是在 FUNCTIONS_EXTENSION_VERSION 中设置的版本上运行。 应用服务公告中会公布次要版本删除信息。

注意

当尝试从 Visual Studio 发布到已固定到特定次要版本的运行时的应用时,会出现一个对话框,提示更新到最新版本或取消发布。 若要避免在必须使用特定次要版本时进行此检查,请在 .csproj 文件中添加 <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> 属性。

使用以下方法之一将应用暂时固定到特定版本的运行时:

使用以下步骤查看并更新函数应用当前使用的运行时版本。

  1. Azure 门户中,浏览到你的函数应用。

  2. 在“设置”下,选择“配置”。 在“函数运行设置”选项卡中,定位“运行时版本”。 请注意特定的运行时版本。 在以下示例中,版本设置为 ~4

    Screenshot showing how to view the runtime version.

  1. 若要将应用固定到特定次要版本,请选择“应用程序设置”>“FUNCTIONS_EXTENSION_VERSION”,将“值”更改为所需的次要版本,然后选择“确定”

  2. 选择“保存”>“继续”以应用更改并重启应用

在对应用程序设置进行更改后,函数应用将重启。

若要将函数应用固定到 Linux 上的特定运行时版本,请在 linuxFxVersion 站点设置中设置特定于版本的基本映像 URL,格式为 DOCKER|<PINNED_VERSION_IMAGE_URI>

重要

Linux 上的固定函数应用不会收到常规安全更新和主机功能更新。 除非支持专业人员建议,否则请使用 FUNCTIONS_EXTENSION_VERSION 设置以及语言和版本的标准 linuxFxVersion 值,例如 Python|3.9。 有关有效值,请参阅 linuxFxVersion 参考文章

在消耗计划中运行的 Linux 函数应用当前不支持固定到特定运行时。

下面是将 Node.js 16 函数应用固定到特定运行时版本 4.14.0.3 所需的 linuxFxVersion 值示例:

DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node16

如果需要,支持专业人员可以为你提供应用程序的有效基础映像 URI。

使用以下 Azure CLI 命令查看和设置 linuxFxVersion。 当前无法在门户中或使用 Azure PowerShell 设置 linuxFxVersion

  • 若要查看当前的运行时版本,请使用 az functionapp config show 命令。

    az functionapp config show --name <function_app> \
    --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsv
    

    在此代码中,用函数应用名称替代 <function_app>。 此外,还使用函数应用的资源组名称替代 <my_resource_group>。 返回当前值 linuxFxVersion

  • 若要更新函数应用中的 linuxFxVersion 设置,请使用 az functionapp config set 命令。

    az functionapp config set --name <FUNCTION_APP> \
    --resource-group <RESOURCE_GROUP> \
    --linux-fx-version <LINUX_FX_VERSION>
    

    <FUNCTION_APP> 替换为你的函数应用的名称。 此外,还使用函数应用的资源组名称替代 <RESOURCE_GROUP>。 最后,将 <LINUX_FX_VERSION> 替换为支持专业人员提供给你的特定映像的值。

在前面的代码示例中,可以通过选择“打开 Cloud Shell”从 Azure Cloud Shell 运行这些命令。 还可以在执行 az login 登录后使用 Azure CLI 在本地执行此命令。

在对站点配置进行更改后,函数应用会重启。

后续步骤