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. |