Aracılığıyla paylaş


Azure İşlevleri'nde Python 3.13+ için değişiklikler ve yönergeler

Bu makalede, Python 3.13 ile başlayan Azure İşlevleri tarafından sunulan önemli Python özellik güncelleştirmeleri özetlenmektedir. Bu değişiklikler arasında çalışma zamanı sürümü yönetimi, performans geliştirmeleri ve kaldırılan birkaç özellik bulunur.

Python çalışma zamanı sürüm denetimi

Python 3.13'den başlayarak İşlevler, uygulamanız tarafından kullanılan İşlevler Python çalışma zamanının belirli sürümlerini hedeflemenizi sağlayan yeni bir kabul etme özelliği olan çalışma zamanı sürüm denetimini kullanıma sunmıştır.

Sürüm denetimi etkinleştirilmeden, uygulamanız İşlevler tarafından yönetilen Python çalışma zamanının varsayılan sürümünde çalışmaya devam eder. Bunun yerine, uygulamanızı Python çalışma zamanının belirli bir sürümüne sabitleyebilmek içinrequirements.txtdosyanızı değiştirerek en son yayımlanan sürümü, önceden yayınlanmış bir sürümü istemeniz gerekir.

requirements.txt dosyanıza Python çalışma zamanı paketine başvuru ekleyerek çalışma zamanı sürümü denetimini etkinleştirirsiniz; burada pakete atanan değer kullanılan çalışma zamanı sürümünü belirler.

requirements.txt eklediğiniz belirli başvuru, Python programlama modelinize bağlıdır ve bu da şu değerlerden biri olabilir:

Model sürümü Paket adı
v2 azure-functions-runtime
v1 azure-functions-runtime-v1

Bu tablo, requirements.txt dosyanızdaki bu ayarın sürüm değerine göre sürüm oluşturma davranışını gösterir:

Sürüm Örnek Davranış
Değer kümesi yok azure-functions-runtime Python 3.13+ uygulamanız İşlevler Python çalışma zamanının en son kullanılabilir sürümünde çalışır. Uygulamanız en son kararlı çalışma zamanı güncelleştirmelerini otomatik olarak aldığından, bu seçenek platform iyileştirmeleri ve özellikleriyle güncel kalmak için en iyisidir.
Belirli bir sürüme sabitlenmiş azure-functions-runtime==1.2.0 Python 3.13+ uygulamanız sabitlenmiş çalışma zamanı sürümünde kalır ve otomatik güncelleştirmeleri almaz. Bunun yerine, çalışma zamanındaki yeni özelliklerden, düzeltmelerden ve geliştirmelerden yararlanmak için sabitlenmiş sürümünüzü el ile güncelleştirmeniz gerekir. Sabitleme, kararlılığın ve öngörülebilirliğin önemli olduğu kritik üretim iş yükleri için önerilir. Sabitleme ayrıca geliştirme sırasında uygulamanızı önceden yayınlanmış çalışma zamanı sürümlerinde test etmenizi sağlar.
Paket başvurusu yok Yok öğesini ayarlamayarak azure-functions-runtimePython 3.13+ uygulamanız, python çalışma zamanının en son yayınlanan sürümün arkasındaki varsayılan bir sürümde çalışır. Güncelleştirmeler, İşlevler tarafından düzenli aralıklarla yapılır. Bu seçenek kararlılık ve geniş uyumluluk sağlar. Ancak, en yeni özelliklere ve düzeltmelere erişim, varsayılan sürüm güncelleştirilene kadar geciktirilir.

Python 3.13+ uygulamanızla çalışma zamanı sürüm denetimini kullanırken şu noktaları göz önünde bulundurun:

  • Herhangi bir üretim uygulamasını yayın öncesi (alfa, beta veya geliştirme) çalışma zamanı sürümlerine sabitlemekten kaçının.
  • Uygulamanızın Python çalışma zamanına uygulanan değişikliklerden haberdar olmak veya sabitlenmiş bir sürümün ne zaman güncelleştirileceğini belirlemek için Python çalışma zamanı sürüm notlarını düzenli olarak gözden geçirin.

Python 3.13'te sunulan diğer değişiklikler ve iyileştirmeler

Python 3.13, performans ve güvenilirliği artıran ve çalışma zamanı davranışlarını başka şekilde etkileyen İşlevler için çeşitli geliştirmeler sunar:

Bağımlılık yalıtımı artık varsayılan olarak etkinleştirildi

Uygulamalarınız artık tam bağımlılık yalıtımından yararlanabilir; yani uygulamanız veya grpciogibi Python çalışanı tarafından da kullanılan bir bağımlılık içerdiğinde, Python çalışma zamanı dahili olarak azure-functions farklı bir sürüm kullanıyor olsa bile uygulamanızın kendi sürümünü kullanabileceği anlamına gelir.

Bu yalıtım, sürüm çakışmalarını önler ve özel paketlerle uyumluluğu geliştirir.

Geliştirilmiş soğuk başlangıç performansı

Python 3.13, Python 3.11 ile karşılaştırıldığında soğuk başlangıç süresinde ölçülebilir bir azalma sağlar ve bu da uygulamanın daha hızlı başlatılmasına neden olur.

Destekle Orjson daha hızlı JSON işleme

İşlevler artık Rust ile yazılmış yüksek performanslı bir JSON kitaplığının Orjsonotomatik kullanımını desteklemektedir. Uygulamanızın bağımlılıklarına dahil edildiğinde Orjson , çalışma zamanı bunu kodunuzda herhangi bir değişiklik yapmanıza gerek kalmadan JSON serileştirme ve seri durumdan çıkarma için otomatik olarak kullanır.

kullanımı Orjson , HTTP API çağrıları ve olay işleme gibi JSON yoğunluklu iş yükleri için hem daha düşük gecikme süresi hem de daha yüksek aktarım hızı sağlayabilir. Geriye dönük uyumluluğu sağlamak için, standart json kitaplık kullanılabilir olmadığında Orjson kullanılır.

HTTP akışı için basitleştirilmiş kabul etme

  • HTTP Akış özelliği artık uygulama ayarınızda veya diğer yapılandırmalarda herhangi bir değişiklik gerektirmeden kullanılabilir. yine de işlev düzeyinde kabul etmeniz gerekir, ancak artık özelliği kullanmak için ayarı eklemeniz PYTHON_ENABLE_INIT_INDEXING gerekmez.

Python'da özellik desteği kaldırıldı

Bu özellikler artık Python 3.13 ve sonraki sürümleri kullanılırken İşlevler tarafından desteklenmiyor:

  • Çalışan Uzantıları: Özel çalışan uzantıları Python 3.13+ çalışma zamanıyla uyumlu değildir. Uygulamanız bu uzantılara güveniyorsa, desteklenen alternatifleri kullanarak yeniden değerlendirmeniz veya bu uzantıya geçmeniz gerekir.
  • Paylaşılan Bellek: Python 3.13'den başlayarak büyük yük iyileştirmesi için kullanılan paylaşılan bellek özelliği kullanılamaz. Varsayılan olarak, tüm iletişim artık gRPC tabanlı mesajlaşmayı kullanır.

İlgili makale