Azure İşlevleri barındırma seçenekleri

Azure'da bir işlev uygulaması oluşturduğunuzda, uygulamanız için bir barındırma planı seçmeniz gerekir. Azure İşlevleri tarafından sağlanan üç temel Azure İşlevleri barındırma planı vardır: Tüketim planı, Premium plan ve Ayrılmış (App Service) planı. Bu barındırma planları Azure Uygulaması Hizmet altyapısı tarafından kolaylaştırılır ve hem Linux hem de Windows sanal makinelerinde genel olarak kullanılabilir (GA).

Seçtiğiniz Azure İşlevleri barındırma planı aşağıdaki davranışları belirler:

  • İşlev uygulamanızın ölçeklendirilmesi.
  • Her işlev uygulaması örneğinde kullanılabilen kaynaklar.
  • Azure Sanal Ağ bağlantısı gibi gelişmiş işlevler için destek.

Azure İşlevleri barındırmaya ek olarak, kapsayıcılı işlev uygulamalarını Kubernetes kümelerine veya Azure Container Apps'e dağıtılabilir kapsayıcılarda barındırabilirsiniz. İşlevlerinizi bir Kubernetes kümesinde barındırmayı seçerseniz Azure Arc özellikli bir Kubernetes kümesi kullanmayı göz önünde bulundurun. Özel kapsayıcı uygulamaları dağıtma hakkında daha fazla bilgi edinmek için bkz. Azure İşlevleri barındıran Azure Container Apps.

Bu makale, kapsayıcı tabanlı barındırma seçenekleri de dahil olmak üzere çeşitli barındırma planları arasında ayrıntılı bir karşılaştırma sağlar.

Dekont

Azure Arc özellikli Kubernetes kümelerinde ve Azure Container Apps'te Azure İşlevleri kapsayıcıları barındırma şu anda önizleme aşamasındadır.

Planlara genel bakış

Aşağıdaki üç ana Azure İşlevleri barındırma planının avantajlarının bir özetidir:

Planlama Sosyal haklar
Tüketim planı Otomatik olarak ölçeklendirin ve yalnızca işlevleriniz çalışırken işlem kaynakları için ödeme yapın.

Tüketim planında İşlevler konağının örnekleri, gelen olayların sayısına göre dinamik olarak eklenir ve kaldırılır.

✔ Varsayılan barındırma planı.
✔ Yalnızca işlevleriniz çalışırken ödeme.
✔ Yüksek yük dönemlerinde bile otomatik olarak ölçeklendirilir.
Premium plan Uygulamaları boşta kaldıktan sonra gecikme olmadan çalıştıran, daha güçlü örneklerde çalışan ve sanal ağlara bağlanan önceden ısıtılmış çalışanlar kullanılarak isteğe göre otomatik olarak ölçeklendirilir.

Aşağıdaki durumlarda Azure İşlevleri Premium planını göz önünde bulundurun:

✔ İşlev uygulamalarınız sürekli veya neredeyse sürekli çalışır.
✔ Tüketim planında çok sayıda küçük yürütme ve yüksek yürütme faturanız, ancak düşük GB saniyeniz vardır.
✔ Tüketim planı tarafından sağlanandan daha fazla CPU veya bellek seçeneğine ihtiyacınız vardır.
✔ Kodunuzun Tüketim planında izin verilen en uzun yürütme süresinden daha uzun çalışması gerekir.
✔ Tüketim planında bulunmayan sanal ağ bağlantısı gibi özelliklere ihtiyacınız vardır.
✔ İşlevlerinizin üzerinde çalıştırıldığı özel bir Linux görüntüsü sağlamak istiyorsunuz.
Ayrılmış plan İşlevlerinizi bir App Service planında normal App Service planı fiyatlarında çalıştırın.

Dayanıklı İşlevler kullanılamadığı uzun süre çalışan senaryolar için en iyi yöntemdir. Aşağıdaki durumlarda bir App Service planı düşünün:

✔ Zaten diğer App Service örneklerini çalıştıran, az kullanılan vm'leriniz var.
✔ Tahmine dayalı ölçeklendirme ve maliyetler gereklidir.

Bu makaledeki karşılaştırma tabloları, işlev uygulamalarınızı çalıştırmak için en yüksek miktarda denetim ve yalıtım sağlayan aşağıdaki barındırma seçeneklerini de içerir.

Barındırma seçeneği Ayrıntılar
ASE App Service Ortamı (ASE), App Service uygulamalarını yüksek ölçekte güvenli bir şekilde çalıştırmak için tamamen yalıtılmış ve ayrılmış bir ortam sağlayan bir App Service özelliğidir.

ASE'ler, şunları gerektiren uygulama iş yükleri için uygundur:

✔ Çok yüksek ölçek.
✔ Tam işlem yalıtımı ve güvenli ağ erişimi.
✔ Yüksek bellek kullanımı.
Azure Container Apps Azure Container Apps, sunucusuz bir platformda mikro hizmetleri ve kapsayıcılı uygulamaları çalıştırmanızı sağlayan tam olarak yönetilen bir ortamdır. Azure Container Apps, işlevlerinizi temel alınan Azure Kubernetes Service'in (AKS) gücüyle çalıştırmanıza olanak sağlarken Kubernetes API'leriyle çalışmak zorunda olmanın karmaşıklığını ortadan kaldırır.
Kubernetes
(Doğrudan veya
Azure Arc)
Kubernetes, Kubernetes platformunun üzerinde çalışan tamamen yalıtılmış ve ayrılmış bir ortam sağlar.

Kubernetes, şunları gerektiren uygulama iş yükleri için uygundur:
✔ Özel donanım gereksinimleri.
✔ Yalıtım ve güvenli ağ erişimi.
✔ Karma veya çoklu bulut ortamında çalışma olanağı.
✔ Mevcut Kubernetes uygulamaları ve hizmetleriyle birlikte çalıştırın.

Bu makaledeki diğer tablolar, çeşitli özellikler ve davranışlarla ilgili planları karşılaştırır. Dinamik barındırma planları (Tüketim ve Premium) arasında maliyet karşılaştırması için Azure İşlevleri fiyatlandırma sayfasına bakın. Çeşitli Ayrılmış plan seçeneklerinin fiyatlandırması için App Service fiyatlandırma sayfasına bakın.

İşletim sistemi/çalışma zamanı

Aşağıdaki tabloda barındırma planları için işletim sistemi ve dil desteği gösterilmektedir.

Linux1,2
yalnızca kod
Yalnızca Windows kodu Linux1,2,3
Docker kapsayıcısı
Tüketim planı C#
JavaScript
Java
Python
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
Destek yok
Premium plan C#
JavaScript
Java
Python
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
Python
TypeScript
Ayrılmış plan C#
JavaScript
Java
Python
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
Python
TypeScript
ASE C#
JavaScript
Java
Python
TypeScript
C#
JavaScript
Java
PowerShell Core
TypeScript
C#
JavaScript
Java
PowerShell Core
Python
TypeScript
Kubernetes (doğrudan) Yok Yok C#
JavaScript
Java
PowerShell Core
Python
TypeScript
Azure Arc (Önizleme) C#
JavaScript
Java
Python
TypeScript
yok C#
JavaScript
Java
PowerShell Core
Python
TypeScript

1 Linux, Python çalışma zamanı yığını için desteklenen tek işletim sistemidir.
Linux üzerinde 2 PowerShell desteği şu anda önizleme aşamasındadır.
3 Linux, Docker kapsayıcıları için desteklenen tek işletim sistemidir.

İşlev uygulaması zaman aşımı süresi

bir işlev uygulamasındaki işlevlerin zaman aşımı süresi host.json proje dosyasındaki özelliği tarafından functionTimeout tanımlanır. Bu özellik özellikle işlev yürütmeleri için geçerlidir. Tetikleyici işlev yürütmeyi başlattığında, işlevin zaman aşımı süresi içinde döndürülmesi/yanıt vermesi gerekir. Daha fazla bilgi için bkz. Azure İşlevleri performansını ve güvenilirliğini geliştirme.

Aşağıdaki tabloda belirli planlar için varsayılan ve en yüksek değerler (dakika cinsinden) gösterilmektedir:

Planlama Varsayılan En Fazla1
Tüketim planı 5 10
Premium plan 302 Sınırsız3
Ayrılmış plan 302 Sınırsız3

1 İşlev uygulaması zaman aşımı ayarından bağımsız olarak 230 saniye, HTTP ile tetiklenen bir işlevin isteğe yanıt vermesi için gereken en uzun süredir. Bunun nedeni Azure Load Balancer'ın varsayılan boşta kalma zaman aşımıdır. Daha uzun işleme süreleri için zaman uyumsuz Dayanıklı İşlevler desenini kullanmayı veya fiili çalışmayı ertelemeyi ve anında yanıt döndürmeyi göz önünde bulundurun.
2 İşlevler çalışma zamanının 1.x sürümü için varsayılan zaman aşımı sınırsızdır.
3 60 dakikaya kadar garanti edilir. İşletim sistemi ve çalışma zamanı düzeltme eki uygulama, güvenlik açığı düzeltme eki uygulama ve davranış ölçeği işlevleri yine iptal edebilir, bu nedenle sağlam işlevler yazdığınızdan emin olun.

Ölçek

Aşağıdaki tablo, çeşitli barındırma planlarının ölçeklendirme davranışlarını karşılaştırır.
Maksimum örnekler, aksi belirtilmedikçe işlev başına uygulama (Tüketim) veya plan başına (Premium/Ayrılmış) temelinde verilir.

Planlama Ölçeği genişletme En fazla # örneği
Tüketim planı Olay temelli. Yüksek yük dönemlerinde bile ölçeği otomatik olarak genişletme. Azure İşlevleri altyapısı, gelen tetikleyici olaylarının sayısına göre İşlevler ana bilgisayarının ek örneklerini ekleyerek CPU ve bellek kaynaklarını ölçeklendirir. Windows: 200
Linux: 1001
Premium plan Olay temelli. Yüksek yük dönemlerinde bile ölçeği otomatik olarak genişletme. Azure İşlevleri altyapısı, İşlevler ana bilgisayarının işlevlerinin tetiklediği olay sayısına göre ek örnekler ekleyerek CPU ve bellek kaynaklarını ölçeklendirir. Windows: 100
Linux: 20-1002
Ayrılmış plan3 El ile/otomatik ölçeklendirme 10-30
ASE3 El ile/otomatik ölçeklendirme Kategori 100
Kubernetes KEDA kullanarak Kubernetes kümeleri için olay odaklı otomatik ölçeklendirme. Kümeye göre değişir

1 Ölçeği genişletme sırasında, tüketim planındaki Linux uygulamaları için abonelik başına saatte 500 örnek sınırı vardır.
2 Bazı bölgelerde Premium plandaki Linux uygulamaları 100 örneğe ölçeklendirilebilir. Daha fazla bilgi için Premium plan makalesine bakın.
3 Çeşitli App Service planı seçenekleri için belirli sınırlar için bkz . App Service planı sınırları.

Soğuk başlangıç davranışı

Planlama Ayrıntılar
Tüketim planı Uygulamalar boşta olduğunda sıfıra ölçeklendirilebilir, bu da bazı isteklerin başlangıçta ek gecikme süresine sahip olabileceği anlamına gelir. Tüketim planında, zaten işlev konağı ve dil işlemlerinin çalıştığı önceden ısıtılmış yer tutucu işlevlerden çekme de dahil olmak üzere, soğuk başlangıç süresini azaltmaya yardımcı olacak bazı iyileştirmeler vardır.
Premium plan Soğuk başlangıçlardan kaçınmak için kalıcı olarak sıcak örnekler.
Ayrılmış plan Ayrılmış planda çalışırken İşlevler konağı sürekli olarak çalışabilir ve bu da soğuk başlatmanın gerçekten bir sorun olmadığı anlamına gelir.
ASE Ayrılmış planda çalışırken İşlevler konağı sürekli olarak çalışabilir ve bu da soğuk başlatmanın gerçekten bir sorun olmadığı anlamına gelir.
Kubernetes KEDA yapılandırmasına bağlı olarak, uygulamalar soğuk bir başlangıçtan kaçınmak için yapılandırılabilir. Sıfıra ölçeklendirilecek şekilde yapılandırıldıysa, yeni olaylar için soğuk bir başlangıç yapılır.

Hizmet sınırları

Kaynak Tüketim planı Premium plan Ayrılmış plan ASE Kubernetes
Varsayılan zaman aşımı süresi (dk) 5 30 301 30 30
En uzun zaman aşımı süresi (dk) 10 ilişkisiz7 ilişkisiz2 Sınırsız Sınırsız
En fazla giden bağlantı (örnek başına) 600 etkin (toplam 1200) Sınırsız Sınırsız Sınırsız Sınırsız
Maksimum istek boyutu (MB)3 100 100 100 100 Kümeye bağlıdır
En fazla sorgu dizesi uzunluğu3 4096 4096 4096 4096 Kümeye bağlıdır
En fazla istek URL'si uzunluğu3 8192 8192 8192 8192 Kümeye bağlıdır
Örnek başına ACU Kategori 100 210-840 100-840 210-2508 AKS fiyatlandırması
Maksimum bellek (örnek başına GB) 1.5 3.5-14 1.75-14 3.5 - 14 Tüm düğümler desteklenir
En fazla örnek sayısı (Windows/Linux) 200/100 100/20 SKU9'a göre değişir 1009 Kümeye bağlıdır
Planbaşına işlev uygulamaları 11 100 100 ilişkisiz4 Sınırsız Sınırsız
App Service planları Bölge başına 100 Kaynak grubu başına 100 Kaynak grubu başına 100 - -
Uygulamabaşına dağıtım yuvaları 10 2 3 1-209 20 yok
Depolama 5 5 GB 250 GB 50-1000 GB 1 TB yok
Uygulama başına özel etki alanları 5006 500 500 500 yok
Özel etki alanı SSL desteği ilişkisiz SNI SSL bağlantısı dahil ilişkisiz SNI SSL ve 1 IP SSL bağlantısı dahil ilişkisiz SNI SSL ve 1 IP SSL bağlantısı dahil ilişkisiz SNI SSL ve 1 IP SSL bağlantısı dahil yok

1 Varsayılan olarak, app service planındaki İşlevler 1.x çalışma zamanı zaman aşımı sınırsızdır.
2 App Service planının Always On olarak ayarlanmasını gerektirir. Standart fiyatlarla ödeme.
3 Bu sınırlar konakta ayarlanır.
4 Barındırabileceğiniz işlev uygulamalarının gerçek sayısı, uygulamaların etkinliğine, makine örneklerinin boyutuna ve buna karşılık gelen kaynak kullanımına bağlıdır.
5 Depolama sınırı, aynı App Service planındaki tüm uygulamalar genelinde geçici depolamadaki toplam içerik boyutudur. Tüketim planı, geçici depolama için Azure Dosyalar kullanır.
6 İşlev uygulamanız tüketim planında barındırıldığında yalnızca CNAME seçeneği desteklenir. Premium plan veya App Service planındaki işlev uygulamaları için, CNAME veya A kaydı kullanarak özel bir etki alanını eşleyebilirsiniz.
7 60 dakikaya kadar garanti edilir.
8 Çalışanlar, müşteri uygulamalarını barındıran rollerdir. Çalışanlar üç sabit boyutta kullanılabilir: Bir vCPU/3,5 GB RAM; İki vCPU/7 GB RAM; Dört vCPU/14 GB RAM.
9 Ayrıntılar için bkz . App Service sınırları .
10 Üretim yuvası dahil.
11 Şu anda belirli bir abonelikte 5000 işlev uygulaması sınırı vardır.

Mevcut bir kaynak grubunda yeni işlev uygulamaları oluşturma sınırlamaları

Bazı durumlarda, mevcut bir kaynak grubunda işlev uygulamanız için yeni bir barındırma planı oluşturmaya çalışırken aşağıdaki hatalardan birini alabilirsiniz:

  • Bu kaynak grubunda fiyatlandırma katmanına izin verilmiyor
  • <> SKU_name çalışanları kaynak grubu <resource_group_name>

Aşağıdaki koşullar karşılandığında bu durum oluşabilir:

  • Daha önce başka bir işlev uygulaması veya web uygulaması içeren mevcut bir kaynak grubunda işlev uygulaması oluşturursunuz. Örneğin, Linux Tüketim uygulamaları Linux Ayrılmış veya Linux Premium planları ile aynı kaynak grubunda desteklenmez.
  • Yeni işlev uygulamanız önceki uygulamayla aynı bölgede oluşturulur.
  • Önceki uygulama bir şekilde yeni uygulamanızla uyumsuz. Bu durum SKU'lar, işletim sistemleri arasında veya kullanılabilirlik alanı desteği gibi platform düzeyindeki diğer özelliklerden kaynaklanabilir.

Bunun nedeni, işlev uygulaması ve web uygulaması planlarının oluşturulurken farklı kaynak havuzlarına nasıl eşlenmesidir. Farklı SKU'lar farklı bir altyapı özellikleri kümesi gerektirir. Bir kaynak grubunda uygulama oluşturduğunuzda, bu kaynak grubu eşlenir ve belirli bir kaynak havuzuna atanır. Bu kaynak grubunda başka bir plan oluşturmaya çalışırsanız ve eşlenen havuz gerekli kaynaklara sahip değilse, bu hata oluşur.

Bu hata oluştuğunda bunun yerine işlev uygulamanızı ve barındırma planınızı yeni bir kaynak grubunda oluşturun.

Ağ özellikleri

Özellik Tüketim planı Premium plan Ayrılmış plan ASE
Gelen IP kısıtlamaları ✅Evet ✅Evet ✅Evet ✅Evet
Gelen Özel Uç Noktalar ❌No ✅Evet ✅Evet ✅Evet
Sanal ağ tümleştirmesi ❌No ✅Evet (Bölgesel) ✅Evet (Bölgesel ve Ağ Geçidi) ✅Evet
Sanal ağ tetikleyicileri (HTTP olmayan) ❌No ✅Evet ✅Evet ✅Evet
Karma bağlantılar (yalnızca Windows) ❌No ✅Evet ✅Evet ✅Evet
Giden IP kısıtlamaları ❌No ✅Evet ✅Evet ✅Evet

Faturalama

Planlama Ayrıntılar
Tüketim planı Yalnızca işlevlerinizin çalıştığı süre için ödeme. Fatura oluşturulurken yürütme sayısı, yürütme süresi ve kullanılan bellek temel alınır.
Premium plan Premium plan, gerekli ve önceden ısıtılmış örneklerde kullanılan çekirdek saniye ve bellek sayısına bağlıdır. Plan başına en az bir örnek her zaman sıcak tutulmalıdır. Bu plan en öngörülebilir fiyatlandırmayı sağlar.
Ayrılmış plan App Service Planındaki işlev uygulamaları için, web uygulamaları gibi diğer App Service kaynakları için yaptığınız gibi ödeme yaparsınız.
App Service Ortamı (ASE) AsE için altyapı için ödeme yapılan ve ASE'nin boyutuyla değişmeyen sabit bir aylık ücret vardır. App Service planı vCPU başına bir maliyet de vardır. ASE'de barındırılan tüm uygulamalar, Yalıtılmış fiyatlandırma SKU’su içindedir.
Kubernetes Yalnızca Kubernetes kümenizin maliyetlerini ödersiniz; İşlevler için ek faturalama yok. İşlev uygulamanız, normal bir uygulama gibi kümenizin üzerinde bir uygulama iş yükü olarak çalışır.

Sonraki adımlar