Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen las actualizaciones importantes de características de Python introducidas por Azure Functions a partir de Python 3.13. Estos cambios incluyen administración de versiones en tiempo de ejecución, mejoras de rendimiento y varias características eliminadas.
Control de versiones en tiempo de ejecución de Python
A partir de Python 3.13, Functions presenta el control de versiones en tiempo de ejecución, una nueva característica de participación que le permite tener como destino versiones específicas del entorno de ejecución de Python de Functions que usa la aplicación.
Sin el control de versiones habilitado, la aplicación continúa ejecutándose en una versión predeterminada del entorno de ejecución de Python, que se administra mediante Functions. Debe modificar el archivo derequirements.txt para solicitar en su lugar la versión más reciente publicada, una versión preliminar o para poder anclar la aplicación a una versión específica del entorno de ejecución de Python.
Para habilitar el control de versiones en tiempo de ejecución, agregue una referencia al paquete en tiempo de ejecución de Python al archivo derequirements.txt , donde el valor asignado al paquete determina la versión en tiempo de ejecución usada.
La referencia específica que agregue en requirements.txt depende del modelo de programación de Python, que puede ser uno de estos valores:
| Versión del modelo | Nombre del paquete |
|---|---|
| v2 | azure-functions-runtime |
| v1 | azure-functions-runtime-v1 |
Esta tabla indica el comportamiento de control de versiones en función del valor de versión de esta configuración en el archivo requirements.txt :
| Versión | Ejemplo | Comportamiento |
|---|---|---|
| No hay ningún conjunto de valores | azure-functions-runtime |
La aplicación python 3.13+ se ejecuta en la versión más reciente disponible del entorno de ejecución de Python de Functions. Esta opción es mejor para mantenerse al día con las mejoras y características de la plataforma, ya que la aplicación recibe automáticamente las últimas actualizaciones estables en tiempo de ejecución. |
| Anclado a una versión específica | azure-functions-runtime==1.2.0 |
La aplicación python 3.13+ permanece en la versión en tiempo de ejecución anclada y no recibe actualizaciones automáticas. En su lugar, debe actualizar manualmente su versión anclada para aprovechar las nuevas características, correcciones y mejoras en el entorno de ejecución. Se recomienda anclar las cargas de trabajo de producción críticas en las que la estabilidad y la previsibilidad son esenciales. La asignación también le permite probar su aplicación en versiones preliminares del tiempo de ejecución durante el desarrollo. |
| Sin referencia de paquete | n/a | Al no establecer el azure-functions-runtime, la aplicación Python 3.13+ se ejecuta en una versión predeterminada del entorno de ejecución de Python que es anterior a la versión más reciente publicada. Functions realiza periódicamente actualizaciones. Esta opción garantiza la estabilidad y una amplia compatibilidad. Sin embargo, el acceso a las características y correcciones más recientes se retrasa hasta que se actualice la versión predeterminada. |
Tenga en cuenta estas consideraciones al usar el control de versiones en tiempo de ejecución con la aplicación Python 3.13+:
- Evite anclar cualquier aplicación de producción a versiones preliminares (alfa, beta o desarrollo).
- Revise las notas de la versión del entorno de ejecución de Python periódicamente para tener en cuenta los cambios que se aplican al entorno de ejecución de Python de la aplicación o para determinar cuándo actualizar una versión anclada.
Otros cambios y mejoras introducidos en Python 3.13
Python 3.13 presenta varias mejoras en las funciones que mejoran el rendimiento y la confiabilidad y además afectan a los comportamientos en tiempo de ejecución.
Aislamiento de dependencia ahora habilitado de forma predeterminada
Las aplicaciones ahora pueden beneficiarse del aislamiento de dependencia total, lo que significa que cuando la aplicación incluye una dependencia que también usa el trabajo de Python, como azure-functions o grpcio, la aplicación puede usar su propia versión aunque el entorno de ejecución de Python use internamente una versión diferente.
Este aislamiento evita conflictos de versiones y mejora la compatibilidad con paquetes personalizados.
Rendimiento mejorado del arranque en frío
Python 3.13 proporciona una reducción medible en el tiempo de inicio en frío en comparación con Python 3.11, lo que da como resultado un inicio de aplicación más rápido.
Control más rápido de JSON con Orjson compatibilidad
Functions ahora admite el uso automático de Orjson, una biblioteca JSON de alto rendimiento escrita en Rust. Cuando Orjson se incluye en las dependencias de la aplicación, el entorno de ejecución lo usa automáticamente para la serialización y deserialización json sin tener que realizar ningún cambio en el código.
El uso de Orjson puede proporcionar una menor latencia y un mayor rendimiento para cargas de trabajo pesadas en JSON, como las llamadas a la API HTTP y el procesamiento de eventos. Para garantizar la compatibilidad con versiones anteriores, la biblioteca estándar json se usa cuando Orjson no está disponible.
Participación simplificada para streaming por HTTP
- La característica Streaming HTTP ya está disponible sin necesidad de realizar ningún cambio en la configuración de la aplicación u otras configuraciones. Aunque todavía debe participar en el nivel de función, ya no es necesario agregar la configuración
PYTHON_ENABLE_INIT_INDEXINGpara utilizar la característica.
La compatibilidad con determinadas características ha sido eliminada en Python
Estas características ya no son compatibles con Functions al usar Python 3.13 y versiones posteriores:
- Extensiones de trabajo: las extensiones de trabajo personalizadas no son compatibles con el entorno de ejecución de Python 3.13+. Si la aplicación se basa en estas extensiones, debe volver a evaluar o migrar a usar alternativas admitidas.
- Memoria compartida: la característica de memoria compartida que se usa para la optimización de carga grande no está disponible a partir de Python 3.13. De forma predeterminada, toda la comunicación ahora usa mensajería basada en gRPC.