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

Azure Functions 中 Python 3.13+ 的更改和指南

本文概述了 Azure Functions 从 Python 3.13 开始引入的重要 Python 功能更新。 这些更改包括运行时版本管理、性能增强和多个已删除的功能。

Python 运行时版本控制

从 Python 3.13 开始,Functions 引入了运行时版本控制,这是一项新的选择加入功能,可用于面向应用使用的 Functions Python 运行时的特定版本。

如果未启用版本控制,应用将继续在由 Functions 管理的 Python 运行时的默认版本上运行。 必须修改 requirements.txt 文件,以改为请求最新发布的版本、预发布版本,或者能够将应用固定到 Python 运行时的特定版本。

通过将对 Python 运行时包的引用添加到 requirements.txt 文件来启用运行时版本控制,其中分配给包的值决定了使用的运行时版本。

requirements.txt中添加的特定引用取决于 Python 编程模型,可以是以下值之一:

模型版本 包名称
v2 azure-functions-runtime
v1 azure-functions-runtime-v1

下表根据 requirements.txt 文件中此设置的版本值指示版本控制行为:

版本 示例: 行为
未设置值 azure-functions-runtime Python 3.13+ 应用在 Functions Python 运行时的最新可用版本上运行。 此选项最适合保持平台改进和功能的最新状态,因为应用会自动收到最新的稳定运行时更新。
固定到特定版本 azure-functions-runtime==1.2.0 Python 3.13+ 应用保留在固定的运行时版本上,并且不会接收自动更新。 必须改为手动更新固定版本,以利用运行时中的新功能、修补程序和改进。 对于稳定性和可预测性至关重要的关键生产工作负荷,建议固定。 固定还允许你在开发期间在预发布的运行时版本上测试应用。
无包引用 n/a 如果不设置 azure-functions-runtime,Python 3.13+ 应用在最新版本后面的 Python 运行时的默认版本上运行。 Functions 定期进行更新。 此选项可确保稳定性和广泛的兼容性。 但是,对最新功能和修补程序的访问会延迟,直到更新默认版本。

将运行时版本控制与 Python 3.13+ 应用配合使用时,请记住以下注意事项:

  • 避免将任何生产应用固定到预发布(alpha、beta 或开发)运行时版本。
  • 定期查看 Python 运行时发行说明 ,了解应用于应用的 Python 运行时的更改,或确定何时更新固定的版本。

Python 3.13 中引入的其他更改和改进

Python 3.13 引入了一些对 Functions 的增强功能,这些增强功能可提高性能和可靠性,否则会影响运行时行为:

依赖项隔离现在默认启用

现在,应用可以从完全依赖项隔离中获益,这意味着当应用包含 Python 辅助角色也使用的依赖项(例如azure-functionsgrpcio,或者)应用可以使用自己的版本,即使 Python 运行时在内部使用不同的版本。

此隔离可防止版本冲突,并改进与自定义包的兼容性。

改进了冷启动性能

与 Python 3.11 相比,与 Python 3.11 相比,Python 3.13 可显著缩短 冷启动时间 ,从而加快应用启动速度。

支持速度更快的 Orjson JSON 处理

函数现在支持自动使用 Orjson,这是一个以 Rust 编写的高性能 JSON 库。 当包含在应用的依赖项中时 Orjson ,运行时会自动使用它进行 JSON 序列化和反序列化,而无需在代码中进行任何更改。

使用 Orjson 可为 JSON 密集型工作负荷(例如 HTTP API 调用和事件处理)提供较低的延迟和更高的吞吐量。 为了确保向后兼容,标准 json 库在不可用时 Orjson 使用。

简化 HTTP 流式处理选择

  • HTTP 流式处理功能现已推出,无需对应用设置或其他配置进行任何更改。 虽然仍必须在函数级别选择加入,但不再需要添加 PYTHON_ENABLE_INIT_INDEXING 设置才能使用该功能。

在 Python 中删除了功能支持

使用 Python 3.13 及更高版本时,Functions 不再支持这些功能:

  • 辅助角色扩展:自定义辅助角色扩展与 Python 3.13+ 运行时不兼容。 如果应用依赖于这些扩展,则必须重新评估或迁移到使用受支持的替代方法。
  • 共享内存:从 Python 3.13 开始,用于大型有效负载优化的共享内存功能不可用。 默认情况下,所有通信现在都使用基于 gRPC 的消息传送。

相关文章