Azure İşlevleri barındıran Azure Container Apps
Azure İşlevleri üzerinde kapsayıcılı işlev uygulamaları geliştirmek, dağıtmak ve yönetmek için tümleşik destek sağlarAzure Container Apps. 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 barındırma planı vardır: sunucusuz Tüketim planı ve dağıtım kaynaklarınızı daha iyi denetlemek için iş yükü profillerini kullanan Ayrılmış plan. 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.
Varsayılan Tüketim planında bir işlev uygulaması kapsayıcısı oluşturmayı ve Container Apps'e dağıtmayı öğ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üler kümesi tutar.
Azure İşlevleri Core Tools kullanarak bir kod projesi oluşturduğunuzda ve seçeneğini eklediğinizde--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.
İş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 Developer CLI (azd)
- Azure Functions Core Tools
- Azure Pipeline görevleri
- Azure portalı
- Bicep dosyaları
- GitHub Actions
- Visual Studio Code
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. Ortam ağları hakkında daha fazla bilgi edinmek için bkz . Azure Container Apps ortamında ağ.
Ölçek kurallarını yapılandırma
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; bu kaynak sizin için kaldırılır.
Bu yönetilen kaynak gruplarında herhangi bir sorunla karşılaşırsanız desteğe başvurmanız gerekir.
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:
- Tüm tetikleyiciler kullanılabilse de, Container Apps ortamında çalışırken yalnızca aşağıdaki tetikleyiciler dinamik olarak ölçeklendirilebilir (sıfır örnekten):
- Azure Event Grid
- Azure Event Hubs
- Azure Blob depolama (olay tabanlı)
- Azure Kuyruk Depolama
- Azure Service Bus
- Dayanıklı İşlevler (MSSQL depolama sağlayıcısı)
- HTTP
- Kafka
- Zamanlayıcı
- 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
username
gerçek kullanıcı adı değerini içeren bir uygulama ayarına çözümlenmesi gerekir. Varsayılan$ConnectionString
değer kullanıldığında Kafka tetikleyicisi uygulamanın dinamik olarak ölçeklendirilmesine neden olmaz.
- 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.
- Bu bağlantılar için yönetilen kimlikleri kullanabilirsiniz:
- Ş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ı,
containerapp
Azure CLI'dakiappservice-kube
uzantıyla çakişer. Daha önce Azure Arc'ta uygulama yayımladıysanız komutunu çalıştırınaz extension list
ve yüklü olmadığından emin olunappservice-kube
. Bu durumda, komutunu çalıştırarakaz extension remove -n appservice-kube
kaldırabilirsiniz.