Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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_INDEXINGustawienia, 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.