Dela via


Ändringar och vägledning för Python 3.13+ i Azure Functions

Den här artikeln beskriver viktiga Python-funktionsuppdateringar som introduceras av Azure Functions från och med Python 3.13. Dessa ändringar omfattar körningsversionshantering, prestandaförbättringar och flera borttagna funktioner.

Versionshantering för Python-runtime

Från och med Python 3.13 introducerar Functions körningsversionskontroll, en ny opt-in-funktion som gör att du kan rikta specifika versioner av Functions Python-körningen som används av din app.

Utan att versionskontrollen är aktiverad fortsätter appen att köras på en standardversion av Python-körningen, som hanteras av Functions. Du måste ändra dinrequirements.txt-fil för att i stället begära den senaste versionen, en förhandsversion eller för att kunna fästa appen på en specifik version av Python-körningen.

Du aktiverar körningsversionskontroll genom att lägga till en referens till Python-körningspaketet i dinrequirements.txt-fil , där värdet som tilldelats paketet avgör vilken körningsversion som används.

Den specifika referens som du lägger till i requirements.txt beror på python-programmeringsmodellen, vilket kan vara ett av följande värden:

Modellversion Paketnamn
v2 azure-functions-runtime
v1 azure-functions-runtime-v1

Den här tabellen anger versionsbeteendet baserat på versionsvärdet för den här inställningen i dinrequirements.txt-fil :

Utgåva Exempel Beteende
Ingen värdeuppsättning azure-functions-runtime Python 3.13+-appen körs på den senaste tillgängliga versionen av Functions Python-körningen. Det här alternativet är bäst för att hålla dig uppdaterad med plattformsförbättringar och funktioner, eftersom din app automatiskt får de senaste stabila körningsuppdateringarna.
Fäst på en viss version azure-functions-runtime==1.2.0 Python 3.13+-appen förblir på den låsta körningsversionen och får inga automatiska uppdateringar. Du måste i stället manuellt uppdatera din fixerade version för att dra nytta av nya funktioner, förbättringar och korrigeringar i körtiden. Fästning rekommenderas för kritiska produktionsarbetsbelastningar där stabilitet och förutsägbarhet är viktiga. Med fastsättning kan du också testa din app på förhandsversioner av runtime under utveckling.
Ingen paketreferens Inte tillämpligt Genom att inte ange azure-functions-runtimekörs python 3.13+-appen på en standardversion av Python-körningen som ligger bakom den senaste versionen. Uppdateringar görs regelbundet av Functions. Det här alternativet garanterar stabilitet och bred kompatibilitet. Åtkomsten till de senaste funktionerna och korrigeringarna fördröjs dock tills standardversionen har uppdaterats.

Tänk på följande när du använder körningsversionskontroll med python 3.13+-appen:

  • Undvik att låsa produktionsappen till förhandsversioner (alfa, beta eller dev).
  • Se över Python körmiljö-utgåvenoteringar regelbundet för att hålla sig informerad om ändringar som görs i din apps Python-körmiljö eller för att avgöra när en fastställd version ska uppdateras.

Andra ändringar och förbättringar som introduceras i Python 3.13

Python 3.13 introducerar flera förbättringar av funktioner som förbättrar prestanda och tillförlitlighet och på annat sätt påverkar körningsbeteenden:

Beroendeisolering är nu aktiverat som standard

Dina appar kan nu dra nytta av fullständig beroendeisolering, vilket innebär att när din app innehåller ett beroende som också används av Python-arbetaren, till exempel azure-functions eller grpcio, kan appen använda sin egen version även om Python-körningen använder en annan version internt.

Den här isoleringen förhindrar versionskonflikter och förbättrar kompatibiliteten med anpassade paket.

Förbättrad prestanda för kallstart

Python 3.13 ger en mätbar minskning av kallstartstiden jämfört med Python 3.11, vilket resulterar i snabbare appstart.

Snabbare JSON-hantering med Orjson stöd

Functions stöder nu automatisk användning av Orjson, ett JSON-bibliotek med höga prestanda som skrivits i Rust. När Orjson ingår i appens beroenden använder körningen den automatiskt för JSON-serialisering och deserialisering utan att du behöver göra några ändringar i koden.

Användning Orjson kan ge både lägre svarstid och högre dataflöde för JSON-tunga arbetsbelastningar, till exempel HTTP API-anrop och händelsebearbetning. För att säkerställa bakåtkompatibilitet används standardbiblioteket json när Orjson det inte är tillgängligt.

Förenklad anmälning för HTTP-strömning

  • Funktionen HTTP-direktuppspelning är nu tillgänglig utan att det krävs några ändringar i appinställningen eller andra konfigurationer. Även om du fortfarande måste anmäla dig på funktionsnivå behöver du inte längre lägga PYTHON_ENABLE_INIT_INDEXING till inställningen för att använda funktionen.

Funktionsstöd har tagits bort i Python

Dessa funktioner stöds inte längre av Functions när du använder Python 3.13 och senare versioner:

  • Arbetstillägg: Anpassade arbetstillägg är inte kompatibla med Python 3.13+-körningen. Om din app förlitar sig på dessa tillägg måste du omvärdera eller migrera till med hjälp av alternativ som stöds.
  • Delat minne: Den delade minnesfunktion som används för stor nyttolastoptimering är inte tillgänglig från och med Python 3.13. Som standard använder all kommunikation nu gRPC-baserade meddelanden.

Relaterad artikel