Freigeben über


Änderungen und Anleitungen für Python 3.13+ in Azure Functions

In diesem Artikel werden wichtige Python-Funktionsupdates beschrieben, die von Azure Functions ab Python 3.13 eingeführt wurden. Zu diesen Änderungen gehören laufzeitversionsverwaltung, Leistungsverbesserungen und mehrere entfernte Features.

Python-Laufzeitversionskontrolle

Ab Python 3.13 führt Functions die Laufzeitversionskontrolle ein, ein neues Opt-In-Feature, mit dem Sie bestimmte Versionen der von Ihrer App verwendeten Functions Python-Laufzeit verwenden können.

Ohne aktivierte Versionssteuerung wird Ihre App weiterhin auf einer Standardversion der Python-Laufzeit ausgeführt, die von Funktionen verwaltet wird. Sie müssen Ihre requirements.txt Datei ändern, um stattdessen die neueste veröffentlichte Version, eine vorab veröffentlichte Version anzufordern oder Ihre App an eine bestimmte Version der Python-Laufzeit anzuheften.

Sie aktivieren die Laufzeitversionskontrolle, indem Sie ihrem requirements.txt-Datei einen Verweis auf das Python-Laufzeitpaket hinzufügen, wobei der dem Paket zugewiesene Wert die verwendete Laufzeitversion bestimmt.

Der spezifische Verweis, den Sie in requirements.txt hinzufügen, hängt von Ihrem Python-Programmiermodell ab, das einer der folgenden Werte sein kann:

Modellversion Paketname
v2 azure-functions-runtime
v1 azure-functions-runtime-v1

Diese Tabelle gibt das Versionsverwaltungsverhalten basierend auf dem Versionswert dieser Einstellung in Ihrer requirements.txt Datei an:

Version Beispiel Verhalten
Kein Wertsatz azure-functions-runtime Ihre Python 3.13+-App wird auf der neuesten verfügbaren Version der Functions Python-Laufzeit ausgeführt. Diese Option eignet sich am besten, um mit Plattformverbesserungen und -features auf dem laufenden zu bleiben, da Ihre App automatisch die neuesten stabilen Laufzeitupdates erhält.
An eine bestimmte Version angeheftet azure-functions-runtime==1.2.0 Ihre Python 3.13+-App bleibt auf der angehefteten Laufzeitversion und empfängt keine automatischen Updates. Stattdessen müssen Sie Ihre angeheftete Version manuell aktualisieren, um neue Features, Fixes und Verbesserungen in der Laufzeit zu nutzen. Pinning wird für kritische Produktionsarbeitslasten empfohlen, bei denen Stabilität und Vorhersagbarkeit unerlässlich sind. Durch das Anheften können Sie Ihre App auch während der Entwicklung auf vorableasierten Laufzeitversionen testen.
Kein Paketverweis n/a Wenn Sie nicht festlegen, azure-functions-runtimewird Ihre Python 3.13+-App auf einer Standardversion der Python-Runtime ausgeführt, die sich hinter der neuesten veröffentlichten Version befindet. Updates werden regelmäßig von Funktionen vorgenommen. Diese Option sorgt für Stabilität und breite Kompatibilität. Der Zugriff auf die neuesten Features und Fixes wird jedoch verzögert, bis die Standardversion aktualisiert wird.

Beachten Sie diese Überlegungen bei der Verwendung der Laufzeitversionskontrolle mit Ihrer Python 3.13+-App:

  • Vermeiden Sie das Anheften von Produktions-Apps an Vorabversionen (Alpha-, Beta- oder Dev-Versionen).
  • Überprüfen Sie die Anmerkungen zur Python-Laufzeitversion regelmäßig, um sich über Änderungen zu informieren, die auf die Python-Runtime Ihrer App angewendet werden, oder um zu bestimmen, wann eine angeheftete Version aktualisiert werden soll.

Weitere Änderungen und Verbesserungen, die in Python 3.13 eingeführt wurden

Python 3.13 führt mehrere Verbesserungen an Funktionen ein, die die Leistung und Zuverlässigkeit verbessern und andernfalls Laufzeitverhalten beeinflussen:

Abhängigkeitsisolation jetzt standardmäßig aktiviert

Ihre Apps können jetzt von der vollständigen Abhängigkeitsisolation profitieren. Dies bedeutet, dass Ihre App, wenn Ihre App auch eine Abhängigkeit enthält, die auch vom Python-Worker verwendet wird, z azure-functions . B. oder grpcio, Ihre App eine eigene Version verwenden kann, auch wenn die Python-Laufzeit intern eine andere Version verwendet.

Diese Isolation verhindert Versionskonflikte und verbessert die Kompatibilität mit benutzerdefinierten Paketen.

Verbesserte Kaltstartleistung

Python 3.13 bietet eine messbare Reduzierung der Kaltstartzeit im Vergleich zu Python 3.11, was zu einem schnelleren App-Start führt.

Schnellere JSON-Behandlung mit Orjson Unterstützung

Funktionen unterstützen jetzt die automatische Verwendung einer Orjsonhochleistungsorientierten JSON-Bibliothek, die in Rust geschrieben wurde. Wenn Orjson sie in den Abhängigkeiten Ihrer App enthalten ist, verwendet die Laufzeit sie automatisch für die JSON-Serialisierung und Deserialisierung, ohne dass Sie Änderungen am Code vornehmen müssen.

Die Verwendung Orjson kann sowohl eine niedrigere Latenz als auch einen höheren Durchsatz für JSON-schwere Workloads bereitstellen, z. B. HTTP-API-Aufrufe und Ereignisverarbeitung. Um die Abwärtskompatibilität sicherzustellen, wird die Standardbibliothek json verwendet, wenn Orjson sie nicht verfügbar ist.

Vereinfachtes Anmelden für HTTP-Streaming

  • Das HTTP-Streaming-Feature ist jetzt verfügbar, ohne dass Änderungen an ihrer App-Einstellung oder anderen Konfigurationen erforderlich sind. Sie müssen sich zwar weiterhin auf Funktionsebene anmelden, aber Sie müssen die PYTHON_ENABLE_INIT_INDEXING Einstellung nicht mehr hinzufügen, um das Feature zu verwenden.

Featureunterstützung in Python entfernt

Diese Features werden von Funktionen nicht mehr unterstützt, wenn Python 3.13 und höhere Versionen verwendet werden:

  • Worker extensions: Custom worker extensions aren't compatible with the Python 3.13+ runtime. Wenn Ihre App auf diese Erweiterungen angewiesen ist, müssen Sie die Verwendung unterstützter Alternativen neu bewerten oder migrieren.
  • Freigegebener Speicher: Das für die Optimierung großer Nutzlast verwendete Freigegebene Speicherfeature ist ab Python 3.13 nicht verfügbar. Standardmäßig verwendet jede Kommunikation jetzt gRPC-basiertes Messaging.

Verwandter Artikel