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.
Önemli
Azure İşlevleri'ni doğrudan Azure Container Apps'te çalıştırmak için yeni bir barındırma yöntemi kullanıma sunulmuştur ( duyuruya bakın) ve çoğu yeni iş yükü için önerilir. Bu tümleştirme, Azure Container Apps'in tüm özelliklerinden ve özelliklerinden yararlanırken işlev programlama modelinden ve Azure İşlevleri tarafından sağlanan otomatik ölçeklendirmenin basitliğinden yararlanmanızı sağlar.
Daha fazla bilgi için bkz. Azure Container Apps'te Yerel Azure İşlevleri Desteği
Azure İşlevleri, Azure Container Apps üzerindeki kapsayıcı işlev uygulamalarını geliştirmek, dağıtmak ve yönetmek için entegre destek sağlar. Azure'da olay temelli işlevlerinizi diğer mikro hizmetler, API'ler, web siteleri, iş akışları veya kapsayıcı tarafından barındırılan programlarla aynı ortamda çalıştırmanız gerektiğinde işlev uygulaması kapsayıcılarınızı barındırmak için Azure Container Apps'i kullanın. Container Apps barındırma, açık kaynak izleme, mTLS, Dapr ve Kubernetes Olay Odaklı Otomatik Ölçeklendirme (KEDA) için yerleşik destekle işlevlerinizi tam olarak yönetilen, Kubernetes tabanlı bir ortamda çalıştırmanıza olanak tanır.
İşlev kodunuzu İşlevler tarafından desteklenen herhangi bir dil yığınına yazabilirsiniz. Olay temelli ölçeklendirme ile aynı İşlev tetikleyicilerini ve bağlamalarını kullanabilirsiniz. Kapsayıcı oluşturmak, işlev uygulaması kapsayıcılarını Container Apps'e dağıtmak ve sürekli dağıtımı yapılandırmak için mevcut İşlevler istemci araçlarını ve Azure portalını da kullanabilirsiniz.
Container Apps tümleştirmesi, Container App ortam düzeyinde tanımlanan ağ ve gözlemlenebilirlik yapılandırmalarının, bir Container Apps ortamında çalışan tüm mikro hizmetlere olduğu gibi işlev uygulamanıza da uygulanacağı anlamına gelir. Ayrıca KeDA, Dapr, Envoy gibi Container Apps'in buluta özel diğer özelliklerini de alırsınız. İşlev yürütmelerinizi izlemek için Application Insights'ı kullanmaya devam edebilirsiniz ve işlev uygulamanız ortam tarafından sağlanan aynı sanal ağ kaynaklarına erişebilir.
Azure İşlevleri için kapsayıcı barındırma seçeneklerine genel bir genel bakış için bkz. Azure İşlevleri'de Linux kapsayıcı desteği.
Barındırma ve iş yükü profilleri
Container Apps için iki birincil plan vardır: sunucusuz Tüketim planı ve Ayrılmış plan. her ikisi de iş yükü profilleri ortam türlerinde kullanılabilir ve iş yükü profilleri uygulamalarınız için kullanılabilir işlem ve bellek kaynaklarını belirler. bir iş yükü profili, bir ortamda dağıtılan kapsayıcı uygulamaları için kullanılabilir işlem ve bellek kaynaklarının miktarını belirler. Bu profiller, uygulamalarınızın farklı gereksinimlerine uyacak şekilde yapılandırılır.
Tüketim iş yükü profili, her İş Yükü profili ortam türüne eklenen varsayılan profildir. Ortamınızı oluştururken veya oluşturulduktan sonra ortamınıza Ayrılmış iş yükü profilleri ekleyebilirsiniz. İş yükü profilleri hakkında daha fazla bilgi edinmek için bkz . Azure Container Apps'te iş yükü profilleri.
Kapsayıcılı işlev uygulamalarını barındıran Container Apps, Container Apps'i destekleyen tüm bölgelerde desteklenir.
Uygulamanızın belirli donanım gereksinimleri yoksa, varsayılan Tüketim iş yükü profilini kullanarak ortamınızı tüketim planında veya Ayrılmış planda çalıştırabilirsiniz. Container Apps'te işlevleri çalıştırırken yalnızca Container Apps kullanımı için ücretlendirilirsiniz. Daha fazla bilgi için bkz . Azure Container Apps fiyatlandırma sayfası.
Azure Container Apps'teki Azure İşlevleri, iş yükü profilleriyle Ayrılmış planda GPU özellikli barındırmayı destekler.
Azure Container Apps'in varsayılan Tüketim planında bir işlev uygulaması kapsayıcısını nasıl oluşturup dağıtacağınızı öğrenmek için bkz Azure Container Apps'te ilk kapsayıcılı işlevlerinizi oluşturma.
İş yükü profilleriyle bir Container Apps ortamı oluşturmayı ve işlev uygulaması kapsayıcısını belirli bir iş yüküne dağıtmayı öğrenmek için bkz . Container Apps iş yükü profilleri.
Kapsayıcılardaki işlevler
Container Apps barındırmayı kullanmak için kodunuzun oluşturduğunuz ve bakımını yaptığınız bir Linux kapsayıcısında bulunan bir işlev uygulamasında çalışması gerekir. İşlevler, kapsayıcılı işlev uygulamalarınızı oluşturmak için kullanabileceğiniz dile özgü temel görüntülerin bir kümesini tutar.
Azure İşlevleri Core Tools kullanarak bir kod projesi oluşturduğunuzda ve seçeneğini--docker, Çekirdek Araçlar kapsayıcınızı oluştururken başlangıç noktası olarak kullanabileceğiniz doğru temel görüntüye sahip Dockerfile dosyasını oluşturur.
Önemli
Kendi kapsayıcılarınızı oluştururken kapsayıcınızın temel görüntüsünü desteklenen en son temel görüntüye güncel tutmanız gerekir. Azure İşlevleri için desteklenen temel görüntüler dile özgü olup Azure İşlevleri temel görüntü depolarında bulunur.
İşlevler ekibi, bu temel görüntüler için aylık güncelleştirmeleri yayımlamaya kararlıdır. Düzenli güncelleştirmeler, hem İşlevler çalışma zamanı hem de diller için en son ikincil sürüm güncelleştirmelerini ve güvenlik düzeltmelerini içerir. Kapsayıcınızı düzenli olarak en son temel görüntüden güncelleştirmeli ve kapsayıcınızın güncelleştirilmiş sürümünü yeniden dağıtmalısınız. Daha fazla bilgi için bkz . Özel kapsayıcıları koruma.
İşlev kodunuzda değişiklik yaptığınızda kapsayıcı görüntünüzü yeniden oluşturup yeniden yayımlamanız gerekir. Daha fazla bilgi için bkz . Kayıt defterindeki bir görüntüyü güncelleştirme.
Dağıtım seçenekleri
Azure İşlevleri şu anda kapsayıcılı işlev uygulamasını Azure Container Apps'e dağıtmak için aşağıdaki yöntemleri desteklemektedir:
- Apache Maven
- ARM şablonları
- Azure CLI
- Azure Geliştirici CLI'sı (azd)
- Azure İşlevleri Temel Araçları
- Azure Pipeline görevleri
- Azure portalı
- Bicep dosyaları
- GitHub Actions
- Visual Studio Code
Azure Pipelines veya GitHub Actions kullanarak kapsayıcılı uygulamalarınızı kaynak kodundan sürekli olarak dağıtabilirsiniz. İşlevler'in sürekli dağıtım özelliği şu anda Container Apps'e dağıtılırken desteklenmiyor.
Yönetilen kimlik yetkilendirmesi
En iyi güvenlik için Microsoft Entra kimlik doğrulamasını ve yönetilen kimlik yetkilendirmesini kullanarak uzak hizmetlere bağlanmanız gerekir. Bu bağlantılar için yönetilen kimlikleri kullanabilirsiniz:
Container Apps'te çalışırken, yönetilen kimlikleri destekleyen tüm bağlama uzantıları için yönetilen kimliklerle Microsoft Entra ID kullanabilirsiniz. Şu anda yönetilen kimlik kimlik doğrulaması kullanılırken yalnızca bu bağlama uzantıları olay temelli ölçeklendirmeyi destekler:
- Azure Event Hubs
- Azure Kuyruk Depolama Hizmeti
- Azure Service Bus (Azure Servis Otobüsü)
Yönetilen kimlik kimlik doğrulaması kullanılırken diğer bağlantılar için sabit replikaları kullanın. Daha fazla bilgi için İşlevler geliştirici kılavuzuna bakın.
Sanal ağ tümleştirmesi
İşlev uygulamalarınızı bir Container Apps ortamında barındırdığınızda, işlevleriniz hem dahili hem de dışarıdan erişilebilen sanal ağlardan yararlanabilir. Çevre ağları hakkında daha fazla bilgi edinmek için Azure Container Apps ortamındaki ağlar için internet bağlantısı yapma belgesine bakınız.
Olay temelli ölçeklendirme
Tüm İşlev tetikleyicileri kapsayıcılı işlev uygulamanızda kullanılabilir. Ancak, yalnızca bu tetikleyiciler bir Container Apps ortamında çalışırken alınan olaylara göre dinamik olarak ölçeklendirilebilir (sıfır örnekten):
- Azure Cosmos DB (KEDA bağlantısı)
- Azure Event Grid
- Azure Event Hubs
- Azure Blob Depolama (Event Grid tabanlı)
- Azure Kuyruk Depolama Hizmeti
- Azure Service Bus (Azure Servis Otobüsü)
- Dayanıklı İşlevler (MSSQL depolama sağlayıcısı)
- HTTP
- Kafka
- Zamanlayıcı
Container Apps'te Azure İşlevleri, olay hedefine göre ölçek parametrelerini ve kurallarını yapılandırmak için tasarlanmıştır. KEDA ölçeklendirilen nesneleri yapılandırma konusunda endişelenmeniz gerekmez. İşlev uygulamanızı oluştururken veya değiştirirken yine de en düşük ve en yüksek çoğaltma sayısını ayarlayabilirsiniz. Aşağıdaki Azure CLI komutu, Bir Azure Container Registry'den Container Apps ortamında yeni bir işlev uygulaması oluştururken en düşük ve en yüksek çoğaltma sayısını ayarlar:
az functionapp create --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1 --storage-account <STORAGE_NAME> --environment MyContainerappEnvironment --image <LOGIN_SERVER>/azurefunctionsimage:v1 --registry-username <USERNAME> --registry-password <SECURE_PASSWORD> --registry-server <LOGIN_SERVER>
Aşağıdaki komut, mevcut bir işlev uygulamasında aynı en düşük ve en yüksek çoğaltma sayısını ayarlar:
az functionapp config container set --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1
Yönetilen kaynak grupları
Container Apps'teki Azure İşlevleri, kapsayıcılı işlev uygulaması kaynaklarınızı özel olarak yönetilen kaynak gruplarında çalıştırır. Bu yönetilen kaynak grupları, hizmet sorumluları tarafından bile yönetilen gruptaki kaynakların istenmeyen veya yetkisiz değiştirilmesini veya silinmesini önleyerek uygulamalarınızın tutarlılığını korumaya yardımcı olur.
Container Apps ortamında işlev uygulaması kaynaklarını ilk kez oluşturduğunuzda sizin için bir yönetilen kaynak grubu oluşturulur. Kapsayıcılı işlev uygulamanızın gerektirdiği Container Apps kaynakları bu yönetilen kaynak grubunda çalışır. Aynı ortamda oluşturduğunuz diğer işlev uygulamaları bu mevcut grubu kullanır.
Yönetilen kaynak grubu, tüm işlev uygulaması kapsayıcı kaynakları ortamdan kaldırıldıktan sonra otomatik olarak kaldırılır. Yönetilen kaynak grubu görünür durumdayken, yönetilen kaynak grubunu değiştirme veya kaldırma girişimleri hatayla sonuçlanır. Yönetilen kaynak grubunu bir ortamdan kaldırmak için işlev uygulaması kapsayıcı kaynaklarının tümünü kaldırın; ardından yönetilen kaynak grubu otomatik olarak kaldırılır.
Bu yönetilen kaynak gruplarında herhangi bir sorunla karşılaşırsanız desteğe başvurmanız gerekir.
Uygulama günlüğü
Azure Monitor Application Insights'i kullanarak, Azure İşlevleri tarafından barındırılan uygulamalarda yaptığınız gibi, Container Apps'te barındırılan kapsayıcılı işlev uygulamanızı izleyebilirsiniz. Daha fazla bilgi için Azure İşlevlerini İzleyin.
Olay temelli ölçeklendirmeyi destekleyen bağlamalar için, ölçek olayları FunctionsScalerInfo ve FunctionsScalerError olayları olarak Log Analytics çalışma alanınızda günlüğe kaydedilir. Daha fazla bilgi için bkz Azure Container Apps'te Uygulama Günlüğü.
Container Apps barındırma ile ilgili dikkat edilmesi gerekenler
İşlev uygulaması kapsayıcılarınızı Container Apps'e dağıtırken dikkat edilmesi gereken noktaları göz önünde bulundurun:
- Bu sınırlamalar Kafka tetikleyicileri için geçerlidir:
- protokol değeri
ssl, Container Apps'te barındırıldığında desteklenmez. Farklı bir protokol değeri kullanın. - Bir Kafka tetikleyicisinin Event Hubs'a bağlandığında dinamik olarak ölçeklendirilmesi için özelliğin
usernamegerçek kullanıcı adı değerini içeren bir uygulama ayarına çözümlenmesi gerekir. Varsayılan$ConnectionStringdeğer kullanıldığında Kafka tetikleyicisi uygulamanın dinamik olarak ölçeklendirilmesine neden olamaz.
- protokol değeri
- Yerleşik Container Apps ilke tanımları için, şu anda yalnızca ortam düzeyinde ilkeler Azure İşlevleri kapsayıcıları için geçerlidir.
- Varsayılan olarak, kapsayıcılı işlev uygulaması gelen istekler için 80 numaralı bağlantı noktasını izler. Uygulamanızın farklı bir bağlantı noktası kullanması gerekiyorsa, bu varsayılan bağlantı noktasını değiştirmek için uygulama ayarını
WEBSITES_PORT. - Şu anda Container Apps'te barındırırken yerleşik sürekli dağıtım özelliklerini kullanamazsınız. Bunun yerine Azure Pipelines veya GitHub Actions kullanarak kaynak koddan dağıtmanız gerekir.
- Şu anda Container Apps tarafından barındırılan işlev uygulaması dağıtımlarını kaynak grupları arasında veya abonelikler arasında taşıyamazsınız. Bunun yerine mevcut kapsayıcılı uygulama dağıtımını yeni bir kaynak grubunda, abonelikte veya bölgede yeniden oluşturmanız gerekir.
- Container Apps kullanırken alt düzey Kubernetes API'lerine doğrudan erişiminiz yoktur.
- Uzantı,
containerappAzure CLI'dakiappservice-kubeuzantıyla çakişer. Daha önce Azure Arc'a uygulama yayımladıysanız,az extension listkomutunu çalıştırın veappservice-kube'in yüklü olmadığından emin olun. Bu durumdaaz extension remove -n appservice-kubekomutunu çalıştırarak kaldırabilirsiniz.