Delen via


Wijzigingen en richtlijnen voor Python 3.13+ in Azure Functions

In dit artikel vindt u een overzicht van belangrijke Python-functie-updates die zijn geïntroduceerd door Azure Functions vanaf Python 3.13. Deze wijzigingen omvatten runtimeversiebeheer, prestatieverbeteringen en verschillende verwijderde functies.

Versiebeheer voor Python-runtime

Vanaf Python 3.13 introduceert Functions runtimeversiebeheer, een nieuwe opt-in-functie waarmee u specifieke versies van de Functions Python-runtime kunt richten die door uw app worden gebruikt.

Als versiebeheer niet is ingeschakeld, blijft uw app worden uitgevoerd op een standaardversie van de Python-runtime, die wordt beheerd door Functions. U moet uw requirements.txt-bestand wijzigen om in plaats daarvan de meest recente uitgebrachte versie, een vooraf uitgebrachte versie aan te vragen of om uw app vast te maken aan een specifieke versie van de Python-runtime.

U schakelt runtimeversiebeheer in door een verwijzing naar het Python-runtimepakket toe te voegen aan uw requirements.txt-bestand , waarbij de waarde die aan het pakket is toegewezen, bepaalt welke runtimeversie wordt gebruikt.

De specifieke verwijzing die u in requirements.txttoevoegt , is afhankelijk van uw Python-programmeermodel. Dit kan een van de volgende waarden zijn:

Modelversie Naam van het pakket
v2 azure-functions-runtime
v1 azure-functions-runtime-v1

Deze tabel geeft het versiegedrag aan op basis van de versiewaarde van deze instelling in uw requirements.txt-bestand :

Versie Voorbeeld Gedrag
Geen waarde ingesteld azure-functions-runtime Uw Python 3.13+-app wordt uitgevoerd op de nieuwste beschikbare versie van de Functions Python-runtime. Deze optie is het beste om op de hoogte te blijven van platformverbeteringen en -functies, omdat uw app automatisch de meest recente stabiele runtime-updates ontvangt.
Vastgemaakt aan een specifieke versie azure-functions-runtime==1.2.0 Uw Python 3.13+-app blijft op de vastgemaakte runtimeversie staan en ontvangt geen automatische updates. U moet in plaats daarvan uw vastgemaakte versie handmatig bijwerken om te profiteren van nieuwe functies, fixes en verbeteringen in de runtime. Vastmaken wordt aanbevolen voor kritieke productieworkloads, waarbij stabiliteit en voorspelbaarheid essentieel zijn. Door vast te pinnen kunt u uw app ook testen op pre-release runtimeversies tijdens de ontwikkeling.
Geen pakketreferentie n/a Als u de azure-functions-runtimePython 3.13+-app niet instelt, wordt deze uitgevoerd op een standaardversie van de Python-runtime die zich achter de nieuwste uitgebrachte versie bevindt. Updates worden periodiek uitgevoerd door Functions. Deze optie zorgt voor stabiliteit en brede compatibiliteit. De toegang tot de nieuwste functies en oplossingen wordt echter uitgesteld totdat de standaardversie wordt bijgewerkt.

Houd rekening met deze overwegingen bij het gebruik van runtimeversiebeheer met uw Python 3.13+-app:

  • Vermijd het koppelen van een productie-app aan prerelease-runtimeversies (alfa, bèta of ontwikkelingsversies).
  • Lees regelmatig releaseopmerkingen voor Python Runtime om op de hoogte te zijn van wijzigingen die worden toegepast op de Python-runtime van uw app of om te bepalen wanneer een vastgemaakte versie moet worden bijgewerkt.

Andere wijzigingen en verbeteringen die zijn geïntroduceerd in Python 3.13

Python 3.13 introduceert verschillende verbeteringen in Functions die de prestaties en betrouwbaarheid verbeteren en anderszins invloed hebben op runtimegedrag:

Isolatie van afhankelijkheden is nu standaard ingeschakeld

Uw apps kunnen nu profiteren van volledige isolatie van afhankelijkheden, wat betekent dat wanneer uw app een afhankelijkheid bevat die ook wordt gebruikt door de Python-werkrol, zoals azure-functions of grpcio, uw app een eigen versie kan gebruiken, zelfs als de Python-runtime intern een andere versie gebruikt.

Deze isolatie voorkomt versieconflicten en verbetert de compatibiliteit met aangepaste pakketten.

Verbeterde koudestartprestaties

Python 3.13 biedt een meetbare vermindering van de koude begintijd in vergelijking met Python 3.11, wat resulteert in een snellere opstarttijd van apps.

Snellere JSON-verwerking met Orjson ondersteuning

Functions ondersteunt nu het automatisch gebruik van Orjsoneen JSON-bibliotheek met hoge prestaties die is geschreven in Rust. Wanneer Orjson deze is opgenomen in de afhankelijkheden van uw app, gebruikt de runtime deze automatisch voor JSON-serialisatie en deserialisatie zonder dat u wijzigingen in uw code hoeft aan te brengen.

Het gebruik Orjson kan zowel een lagere latentie als een hogere doorvoer bieden voor werkbelastingen met veel JSON, zoals HTTP-API-aanroepen en gebeurtenisverwerking. Om compatibiliteit met eerdere versies te garanderen, wordt de standaardbibliotheek json gebruikt wanneer Orjson deze niet beschikbaar is.

Vereenvoudigde aanmelding voor HTTP-streaming

  • De functie HTTP-streaming is nu beschikbaar zonder dat er wijzigingen in uw app-instelling of andere configuraties nodig zijn. Hoewel u zich nog steeds moet aanmelden op functieniveau, hoeft u de PYTHON_ENABLE_INIT_INDEXING instelling niet meer toe te voegen om de functie te gebruiken.

Functieondersteuning verwijderd in Python

Deze functies worden niet meer ondersteund door Functions wanneer u Python 3.13 en nieuwere versies gebruikt:

  • Werkrolextensies: Aangepaste werkrolextensies zijn niet compatibel met de Python 3.13+ runtime. Als uw app afhankelijk is van deze extensies, moet u heroverwegen of migreren naar ondersteunde alternatieven.
  • Gedeeld geheugen: de functie voor gedeeld geheugen die wordt gebruikt voor optimalisatie van grote nettoladingen is niet beschikbaar vanaf Python 3.13. Bij standaardinstellingen wordt nu voor alle communicatie op gRPC gebaseerde berichten gebruikt.

Gerelateerd artikel