Udostępnij za pomocą


Zmiany i wskazówki dotyczące języka Python w wersji 3.13 lub nowszej w usłudze Azure Functions

W tym artykule opisano ważne aktualizacje funkcji języka Python wprowadzone przez usługę Azure Functions, począwszy od języka Python 3.13. Te zmiany obejmują zarządzanie wersjami środowiska uruchomieniowego, ulepszenia wydajności i kilka usuniętych funkcji.

Kontrola wersji środowiska uruchomieniowego języka Python

Począwszy od języka Python 3.13, usługa Functions wprowadza kontrolę wersji środowiska uruchomieniowego, nową funkcję opt-in, która umożliwia określenie określonych wersji środowiska uruchomieniowego języka Python usługi Functions używanego przez aplikację.

Bez włączonej kontroli wersji aplikacja będzie nadal działać w domyślnej wersji środowiska uruchomieniowego języka Python, która jest zarządzana przez usługę Functions. Należy zmodyfikować plik requirements.txt , aby zamiast tego zażądać najnowszej wersji, wersji wstępnie wydanej lub przypiąć aplikację do określonej wersji środowiska uruchomieniowego języka Python.

Możesz włączyć kontrolę wersji środowiska uruchomieniowego, dodając odwołanie do pakietu środowiska uruchomieniowego języka Python do pliku requirements.txt , gdzie wartość przypisana do pakietu określa używaną wersję środowiska uruchomieniowego.

Konkretne odwołanie dodawane w requirements.txt zależy od modelu programowania w języku Python, który może być jedną z następujących wartości:

Wersja modelu Nazwa pakietu
v2 azure-functions-runtime
v1 azure-functions-runtime-v1

Ta tabela wskazuje zachowanie przechowywania wersji na podstawie wartości wersji tego ustawienia w pliku requirements.txt :

wersja Przykład Zachowanie
Brak ustawionej wartości azure-functions-runtime Aplikacja języka Python w wersji 3.13 lub nowszej jest uruchamiana w najnowszej dostępnej wersji środowiska uruchomieniowego języka Python usługi Functions. Ta opcja jest najlepsza do utrzymania aktualności dzięki ulepszeniom i funkcjom platformy, ponieważ aplikacja automatycznie otrzymuje najnowsze stabilne aktualizacje środowiska uruchomieniowego.
Przypięte do określonej wersji azure-functions-runtime==1.2.0 Aplikacja języka Python w wersji 3.13 lub nowszej pozostaje w przypiętej wersji środowiska uruchomieniowego i nie otrzymuje automatycznych aktualizacji. Zamiast tego należy ręcznie zaktualizować przypiętą wersję, aby korzystać z nowych funkcji, poprawek i ulepszeń środowiska uruchomieniowego. Przypinanie jest zalecane w przypadku krytycznych obciążeń produkcyjnych, w których niezbędna jest stabilność i przewidywalność. Przypinanie umożliwia również testowanie aplikacji na wstępnie wydanych wersji środowiska uruchomieniowego podczas programowania.
Brak odwołania do pakietu n/a Nie ustawiając azure-functions-runtimeprogramu , aplikacja języka Python w wersji 3.13 lub nowszej jest uruchamiana w domyślnej wersji środowiska uruchomieniowego języka Python, która znajduje się za najnowszą wydaną wersją. Aktualizacje są okresowo wprowadzane przez usługę Functions. Ta opcja zapewnia stabilność i szeroką zgodność. Jednak dostęp do najnowszych funkcji i poprawek jest opóźniony do momentu zaktualizowania wersji domyślnej.

Podczas korzystania z kontroli wersji środowiska uruchomieniowego z aplikacją Python 3.13+ należy pamiętać o następujących kwestiach:

  • Unikaj przypinania dowolnej aplikacji produkcyjnej do wersji wstępnych (alfa, beta lub deweloperskich).
  • Regularnie przejrzyj informacje o wersji środowiska uruchomieniowego języka Python , aby pamiętać o zmianach, które są stosowane do środowiska uruchomieniowego języka Python aplikacji lub określić, kiedy zaktualizować przypiętą wersję.

Inne zmiany i ulepszenia wprowadzone w języku Python 3.13

Język Python 3.13 wprowadza kilka ulepszeń funkcji, które zwiększają wydajność i niezawodność, a w przeciwnym razie wpływają na zachowania środowiska uruchomieniowego:

Izolacja zależności jest teraz domyślnie włączona

Aplikacje mogą teraz korzystać z pełnej izolacji zależności, co oznacza, że gdy aplikacja zawiera zależność, która jest również używana przez proces roboczy języka Python, taki jak azure-functions lub grpcio, aplikacja może używać własnej wersji, mimo że środowisko uruchomieniowe języka Python używa innej wersji wewnętrznie.

Ta izolacja zapobiega konfliktom wersji i poprawia zgodność z pakietami niestandardowymi.

Zwiększona wydajność zimnego startu

Język Python 3.13 zapewnia wymierny spadek czasu zimnego uruchamiania w porównaniu z językiem Python 3.11, co powoduje szybsze uruchamianie aplikacji.

Szybsza obsługa kodu JSON z obsługą Orjson

Funkcje obsługują teraz automatyczne korzystanie z biblioteki JSON o wysokiej wydajności napisanej Orjsonw języku Rust. Jeśli Orjson środowisko uruchomieniowe jest uwzględniane w zależnościach aplikacji, automatycznie używa go do serializacji i deserializacji JSON bez konieczności wprowadzania żadnych zmian w kodzie.

Użycie Orjson może zapewnić zarówno mniejsze opóźnienie, jak i większą przepływność dla obciążeń o dużym obciążeniu JSON, takich jak wywołania interfejsu API HTTP i przetwarzanie zdarzeń. Aby zapewnić zgodność z poprzednimi wersjami, biblioteka standardowa json jest używana, gdy Orjson nie jest dostępna.

Uproszczona opcja przesyłania strumieniowego HTTP

  • Funkcja przesyłania strumieniowego HTTP jest teraz dostępna bez konieczności wprowadzania żadnych zmian w ustawieniu aplikacji lub innych konfiguracjach. Mimo że nadal musisz wyrazić zgodę na poziomie funkcji, nie musisz już dodawać PYTHON_ENABLE_INIT_INDEXING ustawienia, aby korzystać z tej funkcji.

Obsługa funkcji usunięta w języku Python

Te funkcje nie są już obsługiwane przez funkcje w przypadku korzystania z języka Python 3.13 i nowszych wersji:

  • Rozszerzenia procesów roboczych: niestandardowe rozszerzenia procesu roboczego nie są zgodne ze środowiskiem uruchomieniowym języka Python 3.13+. Jeśli aplikacja korzysta z tych rozszerzeń, należy ponownie liczyć lub przeprowadzić migrację do używania obsługiwanych alternatyw.
  • Pamięć współdzielona: funkcja pamięci udostępnionej używana na potrzeby optymalizacji dużego ładunku nie jest dostępna, począwszy od języka Python 3.13. Domyślnie cała komunikacja używa teraz komunikatów opartych na protokole gRPC.

Powiązany artykuł