Azure İşlevleri'de olay odaklı ölçeklendirme

Tüketim ve Premium planlarında, Azure İşlevleri İşlevler konağına daha fazla örnek ekleyerek CPU ve bellek kaynaklarını ölçeklendirir. Örnek sayısı, bir işlevi tetikleyen olay sayısına göre belirlenir.

Tüketim planındaki İşlevler ana bilgisayarının her örneği genellikle 1,5 GB bellek ve bir CPU ile sınırlıdır. Konağın bir örneği, işlev uygulamasının tamamıdır; yani bir işlev uygulamasındaki tüm işlevler bir örnek içinde kaynak paylaşır ve aynı anda ölçeklendirilir. Aynı Tüketim planını paylaşan işlev uygulamaları bağımsız olarak ölçeklendirilir. Premium plandaki plan boyutu, bu örnekteki plandaki tüm uygulamalar için kullanılabilir belleği ve CPU'ları belirler.

İşlev kodu dosyaları, işlevin ana depolama hesabındaki Azure Dosyalar paylaşımlarında depolanır. İşlev uygulamasının ana depolama hesabını sildiğinizde işlev kodu dosyaları silinir ve kurtarılamaz.

Çalışma zamanı ölçeklendirme

Azure İşlevleri, olayların hızını izlemek ve ölçeğin genişletilip genişletilip genişletileceğini belirlemek için ölçek denetleyicisi adlı bir bileşen kullanır. Ölçek denetleyicisi her tetikleyici türü için buluşsal yöntemleri kullanır. Örneğin, Azure Kuyruk depolama tetikleyicisi kullanırken hedef tabanlı ölçeklendirme kullanılır.

Azure İşlevleri için ölçek birimi, işlev uygulamasıdır. İşlev uygulamasının ölçeği genişletildiğinde, Azure İşlevleri konağın birden çok örneğini çalıştırmak için daha fazla kaynak ayrılır. Buna karşılık, işlem talebi azaldıkça, ölçek denetleyicisi işlev ana bilgisayar örneklerini kaldırır. İşlev uygulamasında hiçbir işlev çalıştırıldığında örnek sayısı sonunda "ölçeklendirilir".

Scale controller monitoring events and creating instances

Soğuk Başlangıç

İşlev uygulamanız birkaç dakika boşta kaldıktan sonra platform, uygulamanızın çalıştığı örnek sayısını sıfıra kadar ölçeklendirebilir. Sonraki istekte, sıfırdan bire ölçeklendirme gecikme süresi eklendi. Bu gecikme süresi, soğuk başlangıç olarak adlandırılır. İşlev uygulamanızın gerektirdiği bağımlılık sayısı, soğuk başlangıç zamanını etkileyebilir. Soğuk başlatma, yanıt döndürmesi gereken HTTP tetikleyicileri gibi zaman uyumlu işlemler için daha fazla sorun oluşturur. Soğuk başlangıçlar işlevlerinizi etkiliyorsa, Her zaman açık ayarının etkin olduğu bir Premium planda veya Ayrılmış planda çalıştırmayı göz önünde bulundurun.

Ölçeklendirme davranışlarını anlama

Ölçeklendirme çeşitli faktörlere göre farklılık gösterebilir ve uygulamalar seçilen tetikleyicilere ve dile göre farklı ölçeklendirilebilir. Ölçeklendirme davranışlarının dikkate alınması gereken birkaç karmaşıklığı vardır:

  • En fazla örnek: Tek bir işlev uygulaması yalnızca plan tarafından izin verilen en yüksek düzeye ölçeklendirilir. Ancak tek bir örnek aynı anda birden fazla ileti veya isteği işleyebilir, bu nedenle eş zamanlı yürütme sayısına bir sınırlama yoktur. Gerektiğinde ölçeği kısıtlamak için daha düşük bir maksimum değer belirtebilirsiniz.
  • Yeni örnek hızı: HTTP tetikleyicileri için yeni örnekler en fazla saniyede bir kez ayrılır. HTTP olmayan tetikleyiciler için yeni örnekler en fazla 30 saniyede bir ayrılır. Bir Premium planda çalışırken ölçeklendirme daha hızlıdır.
  • Hedef tabanlı ölçeklendirme: Hedef tabanlı ölçeklendirme, müşteriler için hızlı ve sezgisel bir ölçeklendirme modeli sağlar ve şu anda Service Bus Kuyrukları ve Konuları, Depolama Kuyrukları, Event Hubs ve Cosmos DB uzantıları için desteklenmektedir. Ölçeklendirme davranışlarını anlamak için hedef tabanlı ölçeklendirmeyi gözden geçirmeyi unutmayın.

Ölçeği genişletmeyi sınırla

Bir uygulamanın ölçeği genişletmek için kullanılan en fazla örnek sayısını kısıtlamak isteyebilirsiniz. Bu, veritabanı gibi bir aşağı akış bileşeninin sınırlı aktarım hızına sahip olduğu durumlarda en yaygın olanıdır. Varsayılan olarak Tüketim planı işlevlerinin ölçeği 200 örneğe, Premium plan işlevleri ise 100 örneğe kadar genişletilecektir. Değeri değiştirerek functionAppScaleLimit belirli bir uygulama için daha düşük bir maksimum değer belirtebilirsiniz. functionAppScaleLimit, kısıtlanmamış veya null için veya ile uygulama üst sınırı arasında 1 geçerli bir değer olarak ayarlanabilir0.

az resource update --resource-type Microsoft.Web/sites -g <RESOURCE_GROUP> -n <FUNCTION_APP-NAME>/config/web --set properties.functionAppScaleLimit=<SCALE_LIMIT>

Ölçek daraltma davranışları

İşlevlerinize olan talep azaldığında olay odaklı ölçeklendirme otomatik olarak kapasiteyi azaltır. Bunu, geçerli işlev yürütmelerinin örneklerini boşaltarak yapar ve ardından bu örnekleri kaldırır. Bu davranış, boşaltma modu olarak günlüğe kaydedilir. Şu anda yürütülen işlevler için yetkisiz kullanım süresi, Tüketim planı uygulamaları için 10 dakikaya ve Premium plan uygulamaları için 60 dakikaya kadar uzatılabilir. Olay temelli ölçeklendirme ve bu davranış Ayrılmış plan uygulamaları için geçerli değildir.

Ölçeklendirme davranışları için aşağıdaki noktalar geçerlidir:

  • Windows üzerinde çalışan Tüketim planı işlev uygulamaları için yalnızca Mayıs 2021'dan sonra oluşturulan uygulamalarda varsayılan olarak boşaltma modu davranışları etkindir.
  • Service Bus tetikleyicisini kullanarak işlevlerde düzgün kapatmayı etkinleştirmek için Service Bus Uzantısı'nın 4.2.0 veya sonraki bir sürümünü kullanın.

Ölçeklenebilir uygulamalar için en iyi yöntemler ve desenler

Bir işlev uygulamasının ölçeklendiriliş biçimini etkileyen konak yapılandırması, çalışma zamanı ayak izi ve kaynak verimliliği gibi birçok yönü vardır. Daha fazla bilgi için performansla ilgili dikkat edilmesi gerekenler makalesinin ölçeklenebilirlik bölümüne bakın. Ayrıca, işlev uygulamanızın ölçeklendirilmesiyle bağlantıların nasıl davrandığını da bilmeniz gerekir. Daha fazla bilgi için bkz. Azure İşlevleri'da bağlantıları yönetme.

Python ve Node.js ölçeklendirme hakkında daha fazla bilgi için bkz. Azure İşlevleri Python geliştirici kılavuzu - Ölçeklendirme ve eşzamanlılık ile Azure İşlevleri Node.js geliştirici kılavuzu - Ölçeklendirme ve eşzamanlılık.

Faturalama modeli

Farklı planların faturalaması, Azure İşlevleri fiyatlandırma sayfasında ayrıntılı olarak açıklanmıştır. Kullanım, işlev uygulaması düzeyinde toplanır ve yalnızca işlev kodunun yürütüldüğünü sayar. Faturalama birimleri şunlardır:

  • Gigabayt saniye (GB)cinsinden kaynak tüketimi. Bir işlev uygulamasındaki tüm işlevler için bellek boyutu ve yürütme süresinin birleşimi olarak hesaplanır.
  • Yürütmeler. Bir olay tetikleyicisine yanıt olarak bir işlev her yürütülürken sayılır.

Tüketim faturanızı anlama hakkında yararlı sorgular ve bilgiler faturalama hakkında SSS sayfasında bulunabilir.

Sonraki adımlar

Daha fazla bilgi için aşağıdaki makalelere bakın: