Aracılığıyla paylaş


Azure Container Apps üzerinde Azure İşlevleri'ne genel bakış

Azure Container Apps üzerinde Azure İşlevleri, Azure İşlevleri'nin olay odaklı özelliklerini Container Apps'in sağlam özellikleriyle bir araya getiren, tam olarak yönetilen sunucusuz bir barındırma ortamı sunar. Bu tümleştirme Kubernetes tabanlı düzenleme, KEDA (Kubernetes tabanlı Olay Odaklı Otomatik Ölçeklendirme), Dapr (Dağıtılmış Uygulama Çalışma Zamanı) tümleştirmesi, GPU iş yükü desteği, sepet desteği, sanal ağ (VNet) bağlantısı ve düzeltme yönetimi ile desteklenen yerleşik otomatik ölçeklendirme gibi gelişmiş özellikleri içerir.

İşlevlerinizin mikro hizmetler, API'ler veya web siteleri gibi diğer kapsayıcılı uygulamalarla birlikte çalışmasını istediğinizde bu yaklaşım kullanışlıdır. Ayrıca işlev uygulamalarınızı kapsayıcıya almak, özel bağımlılıklara ihtiyacınız olduğunda veya maliyet tasarrufu için sıfıra ölçek avantajından yararlanmak istediğinizde yardımcı olabilir. Yapay zeka çıkarımı gibi yoğun işlem gücü içeren görevler çalıştırıyorsanız, Container Apps sunucusuz GPU teklifi ve Ayrılmış iş yükü profilleri aracılığıyla GPU tabanlı barındırmayı da destekler.

Azure Container Apps üzerinde entegre bir özellik olarak, Azure İşlevleri görüntülerini doğrudan Azure Container Apps'e Microsoft.App kaynak sağlayıcıyı kullanarak, kind=functionapp ayarlandığında ve az containerapp create çağrıldığında dağıtabilirsiniz. Bu şekilde oluşturulan uygulamaların tüm Azure Container Apps özelliklerine erişimi vardır. Azure portalı aracılığıyla dağıtıyorsanız kurulum sırasında İşlevler için İyileştir uygulamasını etkinleştirebilirsiniz. Daha fazla ayrıntı için dağıtım ve kurulum bölümüne bakın.

Ana faydalar

Container Apps barındırma modeli, kapsayıcılı iş yüklerinin esnekliğini ve Azure İşlevleri'nin olay odaklı doğasını kullanır. Aşağıdaki önemli avantajları sunar:

  • Azure İşlevleri'nin özel bağımlılıkları ve dil yığınları olan kapsayıcılar olarak çalıştırılması.
  • KEDA kullanarak sıfıra kadar ölçekleyin ve 1000 örneğe kadar ölçeklendirin.
  • Güvenli ağ tam VNet tümleşimi ile.
  • Çoklu düzeltmeler, trafik bölme, Dapr tümleştirmesi ve gözlemlenebilirlik bileşenleri gibi gelişmiş Container App özellikleri.
  • 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, Container Apps'te İşlevler'in özelliklerini Flex tüketim planıyla 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 Azure İşlevleri ile özel kitaplıkları, paketleri ve API'leri paketleyin.
  • Geçiş ve modernleştirme: Şirket içi eski ve/veya monolith uygulamalarının kapsayıcılardaki buluta özel mikro hizmetlere geçirilmesi.
  • Olay temelli işleme: Event Grid, Service Bus, Event Hubs ve diğer olay kaynaklarından gelen olayları İşlev programlama modeliyle kolayca işleyebilir.
  • AI ve GPU iş yükleri: Gpu işlem kaynakları gerektiren videoların, görüntülerin, transkriptlerin veya yoğun işlem gücü gerektiren diğer görevlerin sunucusuz iş yükü işlemesi. Daha fazla bilgi için bkz. Azure Container Apps'te sunucusuz GPU'ları kullanma.
  • Mikro hizmetler: Azure İşlevleri'nin barındırılan diğer Container Apps hizmetleriyle tümleştirilmesi.
  • Özel kapsayıcılar: Özel çalışma zamanları veya sepetlerle paket İşlevleri.
  • Özel uygulamalar: Sanal ağ ve iç giriş kullanarak yalnızca iç işlevlerin güvenliğini sağlayın.
  • .NET Aspire: .NET Aspire'in Azure İşlevleri ile tümleştirilmesi, .NET Aspire uygulama konağı kapsamında bir Azure İşlevleri .NET projesi geliştirmenizi, hatalarını ayıklamanızı ve düzenlemenizi sağlar. .NET Aspire ile Azure İşlevleri hakkında daha fazla bilgi edinin
  • Genel İşlevler: Desteklenen standart Azure İşlevleri senaryolarını (örneğin zamanlayıcılar, dosya işleme, veritabanı tetikleyicileri) çalıştırın.

Dağıtım ve kurulum

Azure Container Apps'te Azure İşlevleri'nin dağıtılması için İşlevler uygulamanızı özel bir kapsayıcı görüntüsü olarak paketleyin ve tek bir önemli farkla diğer kapsayıcı uygulamaları gibi dağıtın. Azure CLI veya ARM/Bicep şablonlarını kullanırken özelliğini ayarlamanız kind=functionapp gerekir. Ayrıntılı adımlar ve örnekler için resmi başlangıç belgelerine bakın.

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 İşlevler 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, kurulumu kolaylaştırmak için kapsayıcı uygulaması oluşturma sırasında Azure İşlevleri için İyileştir seçeneğini belirleyin.

Azure İşlevleri için önceden yapılandırılmış bir kapsayıcı uygulaması oluşturduğunuzda Azure portalının ekran görüntüsü.

Tüm standart dağıtım yöntemleri desteklenir, örneğin:

Ayrıntılı adımlar ve örnekler için resmi başlangıç belgelerine bakın.

Fiyatlandırma ve faturalama

Azure Container Apps'te 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.

Önemli noktalar şunlardır:

  • Container Apps içinde 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

Container Apps'teki Azure İşlevleri, C#, JavaScript / TypeScript (Node.js), Python, Java, PowerShell, Özel kapsayıcılar (kendi görüntünüzü getirin) dahil olmak üzere Azure İşlevleri'nde kullanılabilen 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ırarak el ile KEDA ölçek kuralı tanımları gereksinimini ortadan kaldırır. 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.

Platform, İşlevler tetikleyici parametrelerinizi (yapılandırma veya tetikleyici özniteliklerinden host.json ) otomatik olarak uygun KEDA ölçeklendirici parametrelerine çevirir. İşlevler tetikleyici yapılandırmalarının KEDA ölçeklendirme parametreleriyle nasıl eşlendiğine ilişkin ayrıntılı bir başvuru için bkz. Azure İşlevleri KEDA ölçeklendirme eşlemeleri.

Tüm standart Azure İşlevleri tetikleyicileri ve bağlamaları Aşağıdaki özel durumlar dışında Container Apps'te desteklenir:

Yönetilen kimlikler , buna izin veren tetikleyiciler ve bağlamalar için desteklenir. Bunlar şunlar için de kullanılabilir:

Desteklenmeyen tetikleyiciler için Azure Container Apps'teki Azure İşlevleri'nde sabit çoğaltma sayılarını (yani minReplicas > 0'ı ayarlayın) kullanın. Daha fazla ayrıntı için İşlevler geliştirici kılavuzuna bakın.

Ölçeklendirme ve performans

Container Apps üzerinde Azure İşlevleri, KEDA kullanan olaylara göre otomatik olarak ölçeklendirilir ve ölçek kurallarını el ile yapılandırmanız gerekmez. Ölçeklendirme davranışını denetlemek için en düşük/en yüksek çoğaltmaları yine de ayarlayabilirsiniz.

  • Olay 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şlangıç denetimi: Azure Container Apps'te soğuk başlangıç 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. Azure Container Apps'te ölçeklendirme kurallarını ayarlama

Ağ ve güvenlik

Container Apps'te Azure İşlevleri, güvenli, ölçeklenebilir dağıtımlar için Container Apps'in güçlü ve güvenlik özelliklerinden yararlanır:

  • 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/kullanıcı tarafından atanan kimlikleri kullanarak Azure hizmetleriyle kimlik doğrulaması yapın; gizli diziler veya bağlantı dizeleri gerekmez.
  • 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 Yalıtımı: İşlevler güvenli, kapsamlı iletişim için Container Apps ortam sınırlarını paylaşır.

Bu özellikler, Container Apps tarafından barındırılan İşlevler'i kurumsal düzeyde, güvenli sunucusuz uygulamalar için ideal hale getirir.

İzleme ve Kayıt

Container Apps üzerinde Azure İşlevleri, performans izleme ve sorun tanılama için Azure'ın gözlemlenebilirlik araçlarıyla sorunsuz bir şekilde tümleştirilir:

  • Application Insights: İstekler, bağımlılıklar, özel durumlar ve özel izlemeler için telemetri sağlar. Daha fazla bilgi için bkz. Azure İşlevlerini İzleme.
  • Log Analytics: Kapsayıcı yaşam döngüsünü ve ölçeklendirme olaylarını (örneğin, FunctionsScalerInfo girişleri) yakalar. Daha fazla bilgi için bkz. Azure Container Apps'te Uygulama Günlüğü.
  • Ö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.

Değerlendirmeler

Azure Container Apps'te Azure İşlevleri kullanırken dikkat edilmesi gereken diğer noktaları göz önünde bulundurun:

  • Otomatik Ölçeklendirme için Giriş Gereksinimi: Olaylara göre otomatik ölçeklendirmeyi etkinleştirmek için giriş genel olarak veya Container Apps iç ortamında etkinleştirilmelidir.
  • Zorunlu Depolama Hesabı: Container Apps'te dağıtılan her İşlev uygulaması bir depolama hesabına bağlanmalıdır. Bu, tetikleyicileri, günlükleri ve durumu yönetmek için gereklidir. 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 Olay Hub'ı, Azure Service Bus veya Dayanıklı İşlevler tetikleyicilerini 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 tümleştirmesi: Güçlü izleme ve tanılama için İşlevler uygulamanızı Application Insights'a bağlayın. Daha fazla bilgi için bkz. İşlevlerle App Insights tümleştirmesi.
  • İşlev proxy'leri: Desteklenmez. API ağ geçidi senaryoları için bunun yerine Azure API Management ile tümleştirin.
  • Dağıtım yuvaları: Hazırlama ve üretim yuvaları kullanılamaz. Sıfır kapalı kalma süresi sürümleri 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.
  • El ile ölçek kuralı yapılandırması: Ö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: