Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les mises à jour importantes des fonctionnalités Python introduites par Azure Functions à partir de Python 3.13. Ces modifications incluent la gestion des versions du runtime, les améliorations des performances et plusieurs fonctionnalités supprimées.
Contrôle de version du runtime Python
À compter de Python 3.13, Functions introduit le contrôle de version du runtime, une nouvelle fonctionnalité d’opt-in qui vous permet de cibler des versions spécifiques du runtime Python Functions utilisé par votre application.
Sans le contrôle de version activé, votre application continue à s’exécuter sur une version par défaut du runtime Python, qui est gérée par Functions. Vous devez modifier votre fichier requirements.txt pour demander à la place la dernière version publiée, une version préversion ou pour pouvoir épingler votre application à une version spécifique du runtime Python.
Vous activez le contrôle de version du runtime en ajoutant une référence au package d’exécution Python à votre fichier requirements.txt , où la valeur affectée au package détermine la version du runtime utilisée.
La référence spécifique que vous ajoutez dans requirements.txt dépend de votre modèle de programmation Python, qui peut être l’une des valeurs suivantes :
| Version du modèle | Nom du package |
|---|---|
| v2 | azure-functions-runtime |
| v1 | azure-functions-runtime-v1 |
Ce tableau indique le comportement de contrôle de version en fonction de la valeur de version de ce paramètre dans votre fichier requirements.txt :
| Version | Exemple : | Comportement |
|---|---|---|
| Aucune valeur définie | azure-functions-runtime |
Votre application Python 3.13+ s’exécute sur la dernière version disponible du runtime Functions Python. Cette option est idéale pour rester à jour avec les améliorations et fonctionnalités de la plateforme, car votre application reçoit automatiquement les dernières mises à jour du runtime stable. |
| Épinglé à une version spécifique | azure-functions-runtime==1.2.0 |
Votre application Python 3.13+ reste sur la version épinglée du runtime et ne reçoit pas de mises à jour automatiques. Vous devez plutôt mettre à jour manuellement votre version épinglée pour tirer parti des nouvelles fonctionnalités, des correctifs et des améliorations du environnement d’exécution. L’épinglage est recommandé pour les charges de travail de production critiques où la stabilité et la prévisibilité sont essentielles. L’épinglage vous permet également de tester votre application sur les versions préliminaires de l’environnement d’exécution pendant le développement. |
| Aucune référence de package | n/a | En ne définissant pas , azure-functions-runtimevotre application Python 3.13+ s’exécute sur une version par défaut du runtime Python qui se trouve derrière la dernière version publiée. Les mises à jour sont effectuées régulièrement par Functions. Cette option garantit la stabilité et la compatibilité étendue. Toutefois, l’accès aux dernières fonctionnalités et correctifs est retardé jusqu’à ce que la version par défaut soit mise à jour. |
Gardez ces considérations à l’esprit lors de l’utilisation du contrôle de version du runtime avec votre application Python 3.13+ :
- Évitez d’épingler une application de production aux versions préliminaires (alpha, bêta ou développement) du runtime.
- Passez en revue régulièrement les notes de publication du runtime Python pour connaître les modifications qui sont appliquées au runtime Python de votre application ou pour déterminer quand mettre à jour une version épinglée.
Autres modifications et améliorations introduites dans Python 3.13
Python 3.13 introduit plusieurs améliorations apportées aux fonctions qui améliorent les performances et la fiabilité et affectent autrement les comportements d’exécution :
Isolation des dépendances désormais activée par défaut
Vos applications peuvent désormais tirer parti de l’isolation complète des dépendances, ce qui signifie que lorsque votre application inclut une dépendance également utilisée par le worker Python, telle que azure-functions ou grpcio, par exemple, votre application peut utiliser sa propre version même si le runtime Python utilise une autre version en interne.
Cette isolation empêche les conflits de version et améliore la compatibilité avec les packages personnalisés.
Amélioration des performances de démarrage à froid
Python 3.13 fournit une réduction mesurable du temps de démarrage à froid par rapport à Python 3.11, ce qui entraîne un démarrage plus rapide de l’application.
Gestion JSON plus rapide avec la prise en charge de Orjson
Functions prend désormais en charge l’utilisation automatique de Orjson, une bibliothèque JSON hautes performances écrite dans Rust. Lorsqu’Orjson est inclus dans les dépendances de votre application, le runtime l’utilise automatiquement pour la sérialisation et la désérialisation JSON sans que vous ayez à apporter de modifications à votre code.
L’utilisation Orjson peut fournir une latence plus faible et un débit plus élevé pour les charges de travail volumineuses JSON, telles que les appels d’API HTTP et le traitement des événements. Pour garantir la compatibilité descendante, la bibliothèque standard json est utilisée quand Orjson elle n’est pas disponible.
Opt-in simplifié pour le streaming HTTP
- La fonctionnalité de diffusion en continu HTTP est désormais disponible sans nécessiter de modifications apportées au paramètre de votre application ou à d’autres configurations. Bien que vous deviez toujours opter au niveau de la fonction, vous n’avez plus besoin d’ajouter le réglage
PYTHON_ENABLE_INIT_INDEXINGpour utiliser la fonctionnalité.
Suppression de la prise en charge de certaines fonctionnalités dans Python
Ces fonctionnalités ne sont plus prises en charge par Functions lors de l’utilisation de Python 3.13 et versions ultérieures :
- Extensions de travail : les extensions worker personnalisées ne sont pas compatibles avec le runtime Python 3.13+. Si votre application s’appuie sur ces extensions, vous devez réévaluer ou migrer vers des alternatives prises en charge.
- Mémoire partagée : la fonctionnalité de mémoire partagée utilisée pour l’optimisation de la charge utile volumineuse n’est pas disponible à partir de Python 3.13. Par défaut, toutes les communications utilisent désormais la messagerie basée sur gRPC.