如何面向 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
如果应用包含现有函数,则必须先采取预防措施,然后再迁移到更高的主要运行时版本。 以下文章详细介绍了主要版本之间的中断性变更,包括特定于语言的中断性变更。 它们还提供成功迁移现有函数应用的分步说明。
若要确定当前运行时版本,请参阅查看当前运行时版本。
查看当前运行时版本
可以通过以下方法之一查看函数应用的当前运行时版本:
使用以下步骤查看并更新函数应用当前使用的运行时版本。
在 Azure 门户中,浏览到你的函数应用。
在“设置”下,选择“配置”。 在“函数运行设置”选项卡中,定位“运行时版本”。 请注意特定的运行时版本。 在以下示例中,版本设置为
~4
。若要将函数应用固定到 1.x 版运行时,请在“运行时版本”下选择“~1”。 当应用中存在函数时,此开关被禁用。
如果更改了运行时版本,请返回到“概览”选项卡并选择“重启”以重启应用。 函数应用重新开始在 1.x 版运行时上运行,并且在创建函数时将使用 1.x 版模板。
固定到特定版本
使用 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>
属性。
使用以下方法之一将应用暂时固定到特定版本的运行时:
使用以下步骤查看并更新函数应用当前使用的运行时版本。
在 Azure 门户中,浏览到你的函数应用。
在“设置”下,选择“配置”。 在“函数运行设置”选项卡中,定位“运行时版本”。 请注意特定的运行时版本。 在以下示例中,版本设置为
~4
。若要将函数应用固定到 1.x 版运行时,请在“运行时版本”下选择“~1”。 当应用中存在函数时,此开关被禁用。
如果更改了运行时版本,请返回到“概览”选项卡并选择“重启”以重启应用。 函数应用重新开始在 1.x 版运行时上运行,并且在创建函数时将使用 1.x 版模板。
若要将应用固定到特定的次要版本,请在左窗格中展开“设置”,然后选择“环境变量”。
在“应用设置”选项卡中,选择 FUNCTIONS_EXTENSION_VERSION,将“值”更改为所需的次要版本,然后选择“应用”。
选择“应用”,然后选择“确认”,应用更改并重启应用。
在对应用程序设置进行更改后,函数应用将重启。
若要将函数应用固定到 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>
替换为支持专业人员提供给你的特定映像的值。
可以在执行 az login 登录后使用 Azure CLI 在本地执行此命令。
在对站点配置进行更改后,函数应用会重启。