Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure İşlevleri on Azure Container Apps, Azure İşlevleri'ın olay odaklı yeteneklerini Container Apps özellikleri ile birleştiren tamamen yönetilen sunucusuz bir barındırma ortamı sunar. Bu yetenekler arasında Kubernetes tabanlı orkestrasyon, Kubernetes Olay Odaklı Otomatik Ölçekleme (KEDA) tarafından desteklenen yerleşik otomatik ölçeklendirme, Dapr entegrasyonu, GPU iş yükü desteği, yan araba desteği, sanal ağ (VNet) bağlantısı ve revizyon yönetimi yer alır.
Bu yaklaşım, fonksiyonlarınızın mikroservisler, API'ler veya web siteleri gibi diğer konteynerize uygulamalarla birlikte çalışmasını istediğinizde faydalıdır. Fonksiyon uygulamalarınızı konteynerize etmek, özel bağımlılıklara ihtiyacınız olduğunda veya maliyetleri azaltmak için sıfıra ölçeklendirmek istediğinizde de yardımcı olabilir. Yapay zeka çıkarımı gibi hesaplama ağırlıklı görevler için Container Apps, sunucusuz GPU'lar ve Özel iş yükü profilleri aracılığıyla GPU tabanlı barındırmayı destekler.
Azure Container Apps'te entegre bir özellik olarak, kaynak sağlayıcı ve kind=functionapp ayarını kullanarak az containerapp createAzure İşlevleri container imgelerini doğrudan Azure Container Apps'e Microsoft.App dağıtabilirsiniz. Bu şekilde oluşturulan uygulamaların tüm Azure Container Apps özelliklerine erişimi vardır. Azure portalında, kurulum sırasında Optimize for Azure İşlevleri seçeneğini seçin. Daha fazla bilgi için Dağıtım ve kurulum bölümünü inceleyin.
Ana faydalar
Container Apps barındırma modeli, kapsayıcılı iş yüklerinin esnekliğini ve Azure İşlevleri olay odaklı doğasını kullanır. Aşağıdaki önemli avantajları sunar:
- Azure İşlevleri'ı özel bağımlılıklar ve dil yığınlarıyla kapsayıcı olarak çalıştırın.
- KEDA ile sıfıra ölçeklen ve 1.000 instance'a ölçeklendir.
- Güvenli ağ tam VNet tümleşimi ile.
- Konteyner Uygulamaları özellikleri gibi çoklu revizyonlar, trafik bölme, Dapr entegrasyonu ve gözlemlenebilirlik bileşenleri.
- Yoğun işlem gerektiren iş yükleri için sunucusuz ve Ayrılmış GPU desteği.
- İşlevleri mikro hizmetler, API'ler ve arka plan işleri ile birlikte çalıştırmak için Birleştirilmiş Container Apps ortamı.
Aşağıdaki tablo, Konteyner Uygulamalarındaki Fonksiyonların özelliklerini Flex Tüketim planı ile karşılaştırmanıza yardımcı olur.
| Özellik | Konteyner Uygulamaları | Esnek Tüketim Planı |
|---|---|---|
| Sıfıra ölçeklendirin | ✅ Evet (KEDA aracılığıyla) | ✅ Evet |
| Maksimum ölçek genişletme | 1.000 (varsayılan 10, yapılandırılabilir) | 1,000 |
| Her zaman açık örnekler |
✅ Evet (aracılığıyla minReplicas) |
✅ Evet (her zaman hazır örnekler aracılığıyla) |
| Sanal ağ tümleştirmesi | ✅ Evet | ✅ Evet |
| Özel kapsayıcı desteği | ✅ Evet (kendi resminizi getirin) | ❌ Sınırlı (kendi konteynerinizi getiremezsiniz) |
| GPU desteği | ✅ Evet (sunucusuz GPU ayrılmış iş yükü profili aracılığıyla) | ❌ Hayır |
| Yerleşik özellikler | Container Apps özellik desteği. Örneğin, KEDA, Dapr, çoklu revizyonlar, mTLS, sidecar, giriş denetimi ve daha fazlası | Yalnızca işlevlere özgü özellikler |
| Faturalama modeli | Container Apps fiyatlandırması: Tüketim planı (vCPU, bellek, istekler) ve Ayrılmış plan (iş yükü profili tabanlı) | Yürütme süresi + her zaman hazır örnekler |
Container Apps'te İşlevler ile Flex Consumption planı ve diğer tüm plan ve barındırma türlerinin tam karşılaştırması için bkz . İşlev ölçeklendirme ve barındırma seçenekleri.
Senaryo
Container Apps'te Azure İşlevleri, özellikle olay odaklı yürütme, kapsayıcı esnekliği veya diğer hizmetlerle güvenli tümleştirmeye ihtiyacınız olduğunda çok çeşitli kullanım örnekleri için idealdir:
- İş kolu API'leri: İş kolu uygulamaları için özel kitaplıkları, paketleri ve API'leri Azure İşlevleri paketleyin.
- Göç ve modernleşme: Yerel eski ve/veya monolit uygulamaların konteynerlerde bulut doğumlu mikroservislere taşınması.
- Olay odaklı işleme: Event Grid, Service Bus, Event Hubs ve diğer olay kaynaklarından olayları Azure İşlevleri programlama modelini kullanarak yönetin.
- Yapay Zeka ve GPU iş yükleri: GPU kaynakları gerektiren videoları, görselleri, transkriptleri ve diğer hesaplama yoğun iş yüklerini işleyin. Daha fazla bilgi için bkz. Azure Container Apps'da sunucusuz GPU'ları kullanın.
- Mikroservisler: Azure İşlevleri'ın diğer Container Apps barındırılan hizmetlerle tümleştirilmesi.
- Özel kapsayıcılar: İşlevleri özel çalışma zamanları veya yan arabirimlerle paketleme.
- Özel uygulamalar: Sanal ağ ve iç giriş kullanarak yalnızca iç işlevlerin güvenliğini sağlayın.
- .NET Aspire: .NET Aspire ile Azure İşlevleri tümleştirmesi, .NET Aspire uygulama konağı kapsamında bir Azure İşlevleri .NET projesi geliştirmenizi, hata ayıklamanızı ve düzenlemenizi sağlar. Azure İşlevleri ile .NET Aspire hakkında daha fazla bilgi edinin
- Genel İşlevler: Desteklenen standart Azure İşlevleri senaryolarını çalıştırın (örneğin, zamanlayıcılar, dosya işleme, veritabanı tetikleyicileri).
Dağıtım ve kurulum
Azure İşlevleri'ı Azure Container Apps'te dağıtmak için, fonksiyon uygulamanızı özel bir konteyner görüntüsü olarak paketleyin ve onu diğer bir konteyner uygulaması gibi bir anahtar farkla dağıtın. Azure CLI, Azure Resource Manager şablonlarını veya Bicep'i kullandığınızda bu kind=functionapp özelliği ayarlayın. Detaylı adımlar ve örnekler için bkz. Fonksiyon uygulaması oluştur.
az containerapp create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart-functions:latest \
--ingress external \
--target-port 80 \
--kind functionapp \
--query properties.outputs.fqdn
Bu komut, fonksiyon uygulamanızın URL'sini döndürür. Bu URL'yi kopyalayın ve bir web tarayıcısına yapıştırın.
Azure portalında, konteyner uygulaması oluşturma sırasında Azure İşlevleri yapılandırmasını kullanmak için Optimize for Azure İşlevleri seçeneğini seçin.
Tüm standart dağıtım yöntemleri desteklenir, örneğin:
- Azure CLI
- Azure portalı
- ARM şablonları / Bicep
- CI/CD işlem hatları (örneğin, GitHub Actions, Azure Pipelines)
Ayrıntılı adımlar ve örnekler için resmi başlangıç belgelerine bakın.
Fiyatlandırma ve faturalama
Azure Container Apps üzerindeki Azure İşlevleri, Azure Container Apps ile aynı fiyatlandırma modelini izler. Faturalama, ortamınız için seçtiğiniz plan türüne göre belirlenir ve faturalama türü Tüketim veya Ayrılmış olarak seçilebilir.
- Tüketim planı: Bu sunucusuz işlem seçeneği sizi yalnızca uygulamalarınızın çalışırken kullandığı kaynaklar için faturalar.
- Ayrılmış plan: Bu seçenek özelleştirilmiş işlem kaynakları sağlar ve her iş yükü profiline ayrılan örnekler için sizi faturalar.
Plan seçiminiz faturalama hesaplamalarının nasıl yapılacağını belirler. Bir ortamdaki farklı uygulamalar farklı planlar kullanabilir.
Faturalama detayları:
- Container Apps'te Azure İşlevleri programlama modelini kullanmak için ek ücret alınmaz.
- Dayanıklı İşlevler ve diğer gelişmiş desenler aynı Container Apps fiyatlandırma modeli altında desteklenir ve faturalandırılır. Ayrıntılı faturalama mekaniği ve örnekleri için Azure Container Apps'te Faturalama belgelerine bakın.
Olay temelli ölçeklendirme
Azure İşlevleri on Container Apps, C#, JavaScript / TypeScript (Node.js), Python, Java, PowerShell ve Custom konteynerler (kendi görselinizi getirin) dahil olmak üzere Azure İşlevleri'de mevcut tüm ana dil çalışma zamanlarını destekler.
Azure Container Apps üzerinde çalışan Azure İşlevleri, olay kaynağına göre ölçeklendirme kurallarını otomatik olarak yapılandırır; böylece varsayılan kullanımda KEDA ölçeklendirme kuralı tanımlarının el ile yapılmasına gerek kalmaz. Bu nedenle Azure portalındaki "Ölçek kuralları ekle" düğmesi Container Apps'te İşlevler için devre dışı bırakılır. Ancak, ölçeklendirme sınırları oluşturmak ve kaynak ayırma üzerinde denetimi korumak için en düşük ve en yüksek çoğaltma sayısını tanımlamaya devam edebilirsiniz.
Kendi ölçek kurallarınızı sağlamanız gerekiyorsa, allowScalingRuleOverride kullanarak platform tarafından oluşturulan kuralları devre dışı bırakabilirsiniz. Daha fazla bilgi için bkz. Container Apps üzerinde Azure İşlevleri için otomatik olarak oluşturulan KEDA ölçek kurallarını devretme.
Platform, İşlevler tetikleyici parametrelerinizi (yapılandırma veya tetikleyici özniteliklerinden host.json ) otomatik olarak uygun KEDA ölçeklendirici parametrelerine çevirir. İşlev tetikleme yapılandırmalarının KEDA ölçeklendirme parametreleriyle nasıl eşleştiğine dair ayrıntılı bir referans için Azure İşlevleri KEDA ölçeklendirme eşlemeleri başvurusuna bakın.
Tüm standart Azure İşlevleri tetikleyicileri ve bağlamaları, Container Apps'te aşağıdaki istisnalar ile desteklenir:
- Blob Depolama Otomatik ölçeklendirmeyi tetikleme: Yalnızca kaynak olarak Event Grid kullanılırken çalışır. Blob kapsayıcılarında olay aboneliği kullanarak Azure İşlevlerini tetikleme hakkında daha fazla bilgi edinin
- Dayanıklı İşlevler otomatik ölçeklendirme: Yalnızca Microsoft SQL Server ve Durable Task Scheduler depolama sağlayıcılarını destekler. Daha fazla bilgi için Deploy Dayanıklı İşlevler with SQL Server bölümüne bakınız.
- Otomatik ölçeklendirme şu amaçlar için desteklenmez:
- Redis için Azure Önbellek
- Azure SQL
Yönetilen kimlikler , buna izin veren tetikleyiciler ve bağlamalar için desteklenir. Bunlar ayrıca şunların için de kullanılabilir:
- Varsayılan depolama hesabı (AzureWebJobsStorage)
- Azure Container Registry (ACR)
- Tetikleyici olay kaynaklarına bağlanma
Desteklenmeyen tetikleyiciler için, Azure Container Apps üzerinde çalışan Azure İşlevleri'da sabit çoğaltma sayıları kullanın. Yani, minReplicas değerini 0 olarak ayarlayın. Daha fazla bilgi için İşlevler geliştirici kılavuzuna bakın.
Ölçeklendirme ve performans
Container Apps'te Azure İşlevleri, varsayılan olarak KEDA kullanan olaylara göre otomatik olarak ölçeklendirilir. Ölçeklendirme davranışını denetlemek için en düşük/en yüksek çoğaltmaları yine de ayarlayabilirsiniz. Özel ölçek kuralları sağlamak için de kullanabilirsiniz allowScalingRuleOverride .
- Event temelli ölçeklendirme: Event Grid, Service Bus veya HTTP gibi tetikleyicilere göre otomatik olarak ölçeklendirilir.
- Sıfıra ölçeklendirin: Boşta kalan uygulamalar maliyetten tasarruf etmek için ölçeği sıfıra daraltır.
- Soğuk başlatma kontrolü: Azure Container Apps üzerinde soğuk başlatma süresini azaltma hakkında bilgi edinin.
- Eşzamanlılık: Her örnek birden çok olayı paralel olarak işleyebilir.
- Yüksek ölçek: Uygulama başına ölçeği 1.000 örneğe genişletme (varsayılan değer 10'dur).
- GPU desteği: GPU destekli düğümleri kullanarak yapay zeka çıkarımı gibi işlem yoğunluklu iş yüklerini çalıştırın.
Bu, Container Apps'i hem ani artış gösteren hem de sabit durumlu iş yükleri için ideal hale getirir. Daha fazla bilgi edinmek için bkz.
Ağ ve güvenlik
Azure İşlevleri on Container Apps uses Container Apps networking and security features:
- Sanal ağ tümleştirmesi: İç uç noktalar ve özel veritabanları aracılığıyla özel kaynaklara güvenli bir şekilde erişin.
- Yönetilen kimlik: Sistem tarafından atanan veya kullanıcı tarafından atanan kimlikler kullanarak Azure servisleriyle kimlik doğrulaması sağlanır. Sırları veya bağlantı dizileri yönetmenize gerek yok.
- Dapr desteği: Dapr yan araçları aracılığıyla yayın/abone, durum yönetimi ve güvenli hizmet çağrısını etkinleştirin. Daha fazla bilgi için bkz. Dapr tarafından desteklenen mikro hizmet API'leri.
- Giriş ve TLS: TLS/mTLS, özel alan adları ile güvenli HTTP uç noktalarını kullanıma sunma veya dahili tutma.
- Ortam izolasyonu: Fonksiyonlar, güvenli ve kapsamlı iletişim için Container Apps ortam sınırlarını paylaşır.
İzleme ve Kayıt
Azure İşlevleri on Container Apps, performans takibi ve sorun teşhisi için Azure observability araçlarıyla entegre oluyor:
- Application Insights: İstekler, bağımlılıklar, özel durumlar ve özel izlemeler için telemetri sağlar. Daha fazla bilgi için bkz. Monitor Azure İşlevleri.
-
Log Analytics: Girişler gibi konteyner yaşam döngüsünü ve ölçeklendirme olaylarını
FunctionsScalerInfoyakalar. Daha fazla bilgi için bkz. Application loging in Azure Container Apps. - Özel günlük kaydı: Yapılandırılmış çıkış için ILogger ve konsol günlüğü gibi standart çerçeveleri destekler.
- Merkezi izleme: Container Apps ortamı tüm uygulamalarda birleşik panolar ve uyarılar sunar.
Ortam değişkenleri
Container Apps üzerinde çalışan Azure İşlevleri sistem tarafından sağlanan ortam değişkenlerine erişimi vardır. İşlev uygulamanız için ortam CONTAINER_NAME değişkeni, replika adına otomatik olarak ayarlanır. Bu değişkeni çoklu replika senaryolarında loglama, korelasyon ve hata ayıklama için kullanın.
Sistem tarafından sağlanan ortam değişkenlerinin tam listesi için, Azure Container Apps'teki Ortam değişkenleri bölümüne bakın.
Değerlendirmeler
Azure İşlevleri'ı Azure Container Apps üzerinde kullanırken diğer dikkat edilmesi gereken noktaları göz önünde bulundurun:
- Otomatik ölçeklendirme için giriş gereksinimi: Olaylara dayalı otomatik ölçeklendirmeyi etkinleştirmek için, girişi ya kamuya açık olarak ya da Container Apps iç ortamında etkinleştirin.
- Zorunlu depolama hesabı: Container Apps'te dağıtılan her fonksiyon uygulaması bir depolama hesabına bağlanmalıdır. Bu depolama hesabı tetikleyicileri, logları ve durumu yönetir. En iyi yöntemler için depolama hesabı kılavuzunu gözden geçirin.
- Çok düzeltmeli depolama: Birden çok etkin düzeltmeyle dağıtım yaparken, her düzeltmeye ayrılmış bir depolama hesabı atayın. Ayrılmış depolama hesabı kullanmak çakışmaları önlemeye yardımcı olur ve düzgün yalıtım sağlar. Alternatif olarak, eşzamanlı düzeltmelere ihtiyacınız yoksa, basitleştirilmiş yönetim için varsayılan tek düzeltme modunu kullanmayı göz önünde bulundurun.
- Çoklu düzeltme tetikleyicileri: Çekme tabanlı bir tetikleyiciyle çoklu düzeltme modu kullanıyorsanız, rakip tüketicilerle ilgili çakışmaları önlemek için her düzeltme için farklı bir olay kaynağı kullanın. Azure Kuyruk Depolama, Azure Event Hubs, Azure Service Bus veya Dayanıklı İşlevler tetikleyicileri kullanan işlevler, çekme tabanlı tetikleyicilere örnek olarak verilebilir.
- Soğuk başlatma gecikmesi: Kapsayıcı uygulamanız boşta kalma dönemlerinde sıfıra ölçeklendirildiğinde, işlem yapılmadığında ilk istek soğuk bir başlangıçla karşılaşır. Soğuk başlangıç sürelerini azaltma hakkında daha fazla bilgi edinin.
- Application Insights entegrasyonu: Fonksiyon uygulamanızı izlemek ve teşhis etmek için bunu Application Insights'a bağlayın. Daha fazla bilgi için Application Insights ile Fonksiyonlar entegrasyonuna bakınız.
- İşlev proxy'leri: Desteklenmez. API ağ geçidi senaryoları için bunun yerine Azure API Management ile tümleştirin.
- Dağıtım slotları: Hazırlık ve üretim slotları mevcut değil. Kesintisiz sürümler için mavi-yeşil dağıtım stratejilerini kullanın.
-
İşlev erişim anahtarları: İşlev erişim anahtarları oluşturmak için portalın kullanılması desteklenmez. Anahtarları depolamak için
Azure Key Vault kullanmayı göz önünde bulundurun. Üretimde HTTP uç noktalarının güvenliğini sağlamak için aşağıdaki seçenekleri de kullanabilirsiniz: - Kota ve kaynak sınırları: Container Apps ortamlarının bellek, CPU ve bölge başına örnek sayısı için varsayılan sınırları vardır. Daha fazla bilgi için ortam sınırlarına ve varsayılan kotalara bakın. İş yükünüz daha fazla kaynak gerektiriyorsa kota artışı isteyebilirsiniz.
- Manual scale rule configuration: Ölçeklendirme kuralları olay kaynağına göre otomatik olarak yapılandırıldığından, kapsayıcı uygulamalarında barındırılan Azure İşlevleri için Azure portalındaki "Ölçek kuralları ekle" düğmesi devre dışı bırakılır. Bu kurulumda el ile KEDA kural tanımları gerekli değildir.
Geri Bildirim Gönder
Azure Container Apps GitHub deposuna bir sorun veya özellik isteği gönderin.
Sonraki Adımlar / Diğer Kaynaklar
Container Apps'te Azure İşlevleri ile öğrenmeye ve oluşturmaya devam etmek için aşağıdaki kaynakları keşfedin:
- Başlarken: Azure Container Apps'te Azure İşlevleri dağıtma ve yapılandırma için adım adım kılavuz.
- Azure Container Apps belgeleri: Ölçeklendirme, ağ, Dapr ve iş yükü profilleri gibi Container Apps özellikleri için tam başvuru.
- Azure Container Apps pricing: Tüketim tabanlı faturalama ve Ayrılmış plan maliyetleriyle ilgili ayrıntılar.
- Azure İşlevleri barındırma seçenekleri: Container Apps, Flex Consumption, Premium ve Dedicated gibi barındırma planlarının karşılaştırması.
- Azure İşlevleri geliştirici kılavuzu: Tetikleyicileri, bağlamaları, çalışma zamanı davranışını ve yapılandırmayı ayrıntılı olarak inceleyin.