Aracılığıyla paylaş


Azure İşlevleri'da Linux kapsayıcısı desteği

tek tek işlevlerinizi Azure İşlevleri çalışacak şekilde planlayıp geliştirirken genellikle kodun kendisine odaklanırsınız. Azure İşlevleri yalnızca kod projenizi Azure'daki bir işlev uygulamasına dağıtmayı kolaylaştırır. Projenizi bir Linux işlev uygulamasına dağıttığınızda kodunuz sizin için otomatik olarak oluşturulan ve İşlevler yönetim araçlarıyla sorunsuz bir şekilde tümleşen bir kapsayıcıda çalışır.

İşlevler kapsayıcılı işlev uygulaması dağıtımlarını da destekler. Kapsayıcılı dağıtımda, desteklenen bir taban görüntüsünden yerel bir Docker kapsayıcısında işlev uygulamanızın kendi örneğini oluşturursunuz. Ardından bu kapsayıcılı işlev uygulamasını Azure'daki bir barındırma ortamına dağıtabilirsiniz. Kendi işlev uygulaması kapsayıcınızı oluşturmak, işlev kodunuzun hemen çalışma zamanı ortamını özelleştirmenize veya başka bir şekilde denetlemenize olanak tanır.

Important

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 özeldir. Bkz. Azure İşlevleri temel görüntü depoları.

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

Kapsayıcı için barındırma seçenekleri

Kapsayıcılı işlev uygulamalarınızı Azure'da barındırmak için çeşitli seçenekler vardır:

Barındırma seçeneği Benefits
Azure Container Apps Azure İşlevleri, Azure Container Apps üzerinde kapsayıcılı işlev uygulamaları geliştirmek, dağıtmak ve yönetmek için tümleşik destek sağlar. Bu tümleştirme, Azure portalında aynı İşlevler araçlarını ve sayfalarını kullanarak uygulamalarınızı yönetmenizi sağlar. İşlev uygulaması kapsayıcınızı diğer mikro hizmetler, API'ler, web siteleri, iş akışları veya kapsayıcı tarafından barındırılan diğer programlarla aynı ortamda barındırmak için Azure Container Apps'i kullanın. Container Apps barındırma, açık kaynak izleme, mTLS, Dapr ve KEDA için yerleşik destekle işlevlerinizi yönetilen Kubernetes tabanlı bir ortamda çalıştırmanıza olanak tanır. Sıfıra ölçekleme özelliğini destekler ve kullandıkça öde modeliyle sunucusuz bir barındırma sağlar. İş yükü profillerini kullanarak ayrılmış donanım hatta GPU'lar da isteyebilirsiniz. Kapsayıcılı işlev uygulamaları n Azure için önerilen barındırma seçeneği.
Azure Arc özellikli Kubernetes kümeleri (önizleme) İşlev uygulamalarınızı Azure Arc özellikli Kubernetes kümelerinde yalnızca kod dağıtımı olarak veya özel bir Linux kapsayıcısında barındırabilirsiniz. Azure Arc, Kubernetes kümelerini azure'da yönetebilmeniz ve yapılandırabilmeniz için eklemenize olanak tanır. Azure Arc özellikli Kubernetes kümelerinde Azure İşlevleri kapsayıcıları barındırma şu anda önizleme aşamasındadır. Daha fazla bilgi için bkz. Kapsayıcılarla çalışma ve Azure İşlevleri.
Azure İşlevleri Kapsayıcıya alınmış işlev uygulamalarınızı Azure Functions'ta Elastik Premium planında veya Özel App Service planında çalıştırarak barındırabilirsiniz. Zengin kapsayıcı desteği için Container Apps barındırmayı kullanın. Premium plan barındırma, dinamik ölçeklendirmenin avantajlarını sağlar. Mevcut kullanılmayan App Service planı kaynaklarından yararlanmak için Ayrılmış plan barındırmayı kullanmak isteyebilirsiniz.
Kubernetes Azure İşlevleri çalışma zamanı istediğiniz yerde ve şekilde barındırma esnekliği sağladığından işlev uygulaması kapsayıcılarınızı doğrudan Kubernetes kümelerinde barındırabilir ve yönetebilirsiniz. KEDA (Kubernetes tabanlı Event Driven Autoscaling), Kubernetes'te olay odaklı ölçek sağlamak için Azure İşlevleri çalışma zamanı ve araçlarıyla sorunsuz bir şekilde eşleştirir. Önemli: KeDA kullanarak veya doğrudan dağıtım yoluyla kapsayıcılı işlev uygulamalarınızın Kubernetes barındırması, ücretsiz olarak kullanabileceğiniz açık kaynak bir çabadır. Bu barındırma senaryosu için en iyi çaba desteği yalnızca katkıda bulunanlar ve topluluk tarafından sağlanır. Azure Kubernetes Service'e (AKS) dağıtırken bile bir kümede kendi işlev uygulaması kapsayıcılarınızı korumak sizin sorumluluğunuzdadır.

Özellik desteği karşılaştırması

İşlev uygulamanızı bir kapsayıcıda çalıştırırken Azure İşlevleri çeşitli özelliklerinin ve davranışlarının desteklenme derecesi, seçtiğiniz kapsayıcı barındırma seçeneğine bağlıdır.

Feature/behavior Container Apps (tümleşik) Container Uygulamaları (doğrudan) Premium plan Özel plan Kubernetes
Ürün desteği Yes No Yes Yes No
Fonksiyonlar portalı entegrasyonu No No Yes Yes No
Olay temelli ölçeklendirme Yes5 Evet (ölçek kuralları) Yes No No
Maksimum ölçek (örnekler) 10001  10001  1002  10-303  Kümeye göre değişir
Sıfıra indirgenebilir örnekler Yes Yes No No KEDA
Yürütme süresi sınırı Unbounded6 Unbounded6 Unbounded7 Unbounded8 None
Temel Araçlar dağıtımı No No No No func kubernetes 
Revisions Yes  Yes No No No
Dağıtım yuvaları  No No Yes Yes No
Akış günlükleri  Yes  Yes  Yes Yes No
Konsol erişimi  Yes  Yes Evet (Kudu kullanarak) Evet (Kudu kullanarak) Evet (podlarda kullanarak kubectl)
Soğuk başlangıç etkilerini hafifletme En az replikalar Ölçek kuralları  Her zaman hazır/önceden ısıtılmış örnekler  n/a n/a
App Service kimlik doğrulaması  Yes  Yes Yes Yes No
Özel etki alanı adları  Yes  Yes Yes Yes No
Özel anahtar sertifikaları  Yes  Yes Yes Yes No
Sanal ağlar Yes  Yes Yes Yes Yes
Erişilebilirlik bölgeleri Yes  Yes Yes Yes Yes
Diagnostics Yes  Yes Yes  Yes  No
Özel donanım Evet (iş yükü profilleri) Evet (iş yükü profilleri) No Yes Yes
Adanmış GPU'lar Evet (iş yükü profilleri) Evet (iş yükü profilleri) No No Yes
Yapılandırılabilir bellek/CPU sayısı Yes Yes No No Yes
"Ücretsiz hibe" seçeneği Yes Yes No No No
Fiyatlandırma ayrıntıları Container Apps faturalaması Container Apps faturalaması Premium plan faturalaması Ayrılmış plan faturalaması AKS fiyatlandırması
Hizmet adı gereksinimleri 2-32 karakter: küçük harfler, sayılar ve kısa çizgilerle sınırlıdır. Harfle başlayıp alfasayısal karakterle bitmelidir. 2-32 karakter: küçük harfler, sayılar ve kısa çizgilerle sınırlıdır. Harfle başlayıp alfasayısal karakterle bitmelidir. 64'ten az karakter: Alfasayısal karakterler ve kısa çizgilerle sınırlıdır. Kısa çizgiyle başlayamaz veya bitemez. 64'ten az karakter: Alfasayısal karakterler ve kısa çizgilerle sınırlıdır. Kısa çizgiyle başlayamaz veya bitemez. 253 karakterden az: Alfasayısal karakterler ve kısa çizgilerle sınırlıdır. Alfasayısal karakterle başlayıp bitmelidir.
  1. Container Apps'te varsayılan değer 10 örnektir, ancak toplam en fazla 1000 çoğaltma içeren en fazla çoğaltma sayısını ayarlayabilirsiniz. Yeterli çekirdek kotası olduğu sürece bu ayar kabul edilir. İşlev uygulamanızı Azure portalından oluşturduğunuzda 300 örnekle sınırlısınız.
  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ı görmek amacıyla App Service planı sınırları'na bakın.
  4. KEDA gerektirir; çoğu tetikleyici tarafından desteklenir. Hangi tetikleyicilerin olay odaklı ölçeklendirmeyi desteklediğini öğrenmek için bkz . Container Apps barındırma ile ilgili önemli noktalar.
  5. En az çoğaltma sayısı sıfır olarak ayarlandığında, varsayılan zaman aşımı uygulamada kullanılan belirli tetikleyicilere bağlıdır.
  6. Yürütme zaman aşımı süresi için herhangi bir üst sınır uygulanmamaktadır. Ancak, bir işlev yürütmesine verilen yetkisiz kullanım süresi, ölçeği daraltma sırasında 60 dakikadır ve platform güncelleştirmeleri sırasında 10 dakikalık yetkisiz kullanım süresi verilir.
  7. App Service planının Always On olarak ayarlanmasını gerektirir. Platform güncelleştirmeleri sırasında 10 dakikalık bir yetkisiz kullanım süresi verilir.

Özel kapsayıcıları koruma

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 uygulamanızda kullandığınız dil yığınına göre temel görüntünüzü seçin. Aşağıdaki tabloda her yığın için örnekler verilmiştir. Genel olarak, V4 İşlevleri çalışma zamanını belirtmek için etiketi ile 4- başlamalıdır. Yeni ikincil sürümler yayımlandığında, bu etiket yeni sürüme işaret edecek şekilde güncelleştirilir. Özel görüntünüzü düzenli aralıklarla yeniden oluştururken, yeni sürümleri aynı etiketten çekerek uygulamanızın aynı güncelleştirmelere sahip olmasını sağlarsınız. Küçük çalışma zamanı sürümlerini belirten etiketler kullanmamalısınız çünkü bu etiketler güncellenmeyecek ve özel imajınızı ne kadar sık yeniden derlerseniz derleyin, uygulamanız yamalanmamış bir sürümde kalabilir.

Dil Yığını Örnek önerilen temel görüntü etiketleri
.NET (yalıtılmış çalışan modeli) mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0 veya
mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0-appservice

(Bu örnekler .NET 8'i hedefler. İhtiyacınız olan .NET sürümü için uygun görüntüyü seçin.)
.NET (eski işlem içi modeli) mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0 veya
mcr.microsoft.com/azure-functions/dotnet:4-dotnet8.0-appservice

(İşlem içi model için destek 10 Kasım 2026'da sona erecektir. Yalıtılmış çalışan modeline en kısa sürede geçiş yapmalısınız.)
Java mcr.microsoft.com/azure-functions/java:4-java21 veya
mcr.microsoft.com/azure-functions/java:4-java21-appservice

(Bu örnekler Java 21'i hedefler. İhtiyacınız olan Java sürümü için uygun görüntüyü seçin.)
Node.js (JavaScript veya TypeScript) mcr.microsoft.com/azure-functions/node:4-node22 veya
mcr.microsoft.com/azure-functions/node:4-node22-appservice

(Bu örnekler Node.js 22'ye hedeftir. İhtiyacınız olan Node.js sürümü için uygun görüntüyü seçin.)
PowerShell mcr.microsoft.com/azure-functions/powershell:4-powershell7.4 veya
mcr.microsoft.com/azure-functions/powershell:4-powershell7.4-appservice

(Bu örnekler PowerShell 7.4'i hedefler. İhtiyacınız olan PowerShell sürümü için uygun görüntüyü seçin.)
Piton mcr.microsoft.com/azure-functions/python:4-python3.12 veya
mcr.microsoft.com/azure-functions/python:4-python3.12-appservice

(Bu örnekler Python 3.12'ye hedeftir. İhtiyacınız olan Python sürümü için uygun görüntüyü seçin.)
Özel işleyiciler / diğer mcr.microsoft.com/azure-functions/base:4 veya
mcr.microsoft.com/azure-functions/base:4-appservice

ile biten -appservice temel görüntüler, platformdan SSH ve uzaktan hata ayıklamayı etkinleştirir. Bu özelliklere ihtiyacınız yoksa, -appservice sonek olmadan temel görüntüleri kullanabilirsiniz.

Important

Dockerfile dosyanızda yukarıdaki etiketlerden yalnızca birinin olması yeterli değildir. Özel görüntünüzün en son güncelleştirmeleri içerecek şekilde yeniden oluşturulabilmesi için bu etiketten düzenli olarak en son görüntüyü çekmeniz gerekir. En son görüntüyü çekmezseniz ve yeniden derlemezseniz uygulamanız eski temel görüntüde çalışmaya devam eder.

Özel görüntü kullanarak kendi kapsayıcılı uygulamanızı oluşturduğunuzda veya dağıttığınızda, özel görüntünüzün yayımlanan temel görüntülerimizle up-togüncel kalmasını sağlamak sizin sorumluluğunuzdadır. Bu temel görüntü güncelleştirmeleri, yeni özelliklere ve iyileştirmelere ek olarak uygulamanız için kritik öneme sahip güvenlik güncelleştirmelerini de içerebilir. Uygulamanızın korunduğundan emin olmak için güncel kaldığınızdan emin olun. Temel görüntünün en son sürümünü düzenli olarak çekmeniz, özel kapsayıcı görüntünüzü yeniden oluşturmanız ve uygulamanızı kullanmak üzere yeniden dağıtmanız gerekir.

Bazı durumlarda, eski bir temel görüntü kullanan özel bir kapsayıcıdaki bir uygulamanın düzgün çalışmayı durdurabileceği anlamına gelen platform düzeyinde değişiklikler yapmamız gerekir. Bu tür önemli değişiklikler için, düzenli güncelleştirmeleri alan uygulamaların olumsuz etkilenmemesi için güncelleştirilmiş görüntüleri önceden kullanıma slacağız. Özel kapsayıcılarda çalışan uygulamalarınızla ilgili olası sorunları önlemek için, yayınlanan en son ikincil sürümün çok gerisinde kalmadığınızdan emin olun. Destek olayı sırasında uygulamanızın daha eski veya desteklenmeyen bir sürümde olduğu için sorun yaşadığını belirlersek, desteğe devam etmeden önce kapsayıcınızı en son temel görüntü sürümüne güncelleştirmenizi rica ederiz.

Başlangıç Yapmak

Linux kapsayıcılarında Azure İşlevleri ile çalışmaya başlamak için şu bağlantıları kullanın:

Yapmak istiyorum... Makaleye bakın:
İlk kapsayıcılı işlevlerimi oluşturma Yerel Linux kapsayıcısında işlev uygulaması oluşturma
İşlev oluşturma ve Azure Container Apps'e dağıtma Azure Container Apps'te ilk kapsayıcılı işlevlerinizi oluşturma
Azure İşlevlerine kapsayıcılandırılmış işlevler oluşturma ve dağıtma İlk kapsayıcılı Azure İşlevleri oluşturma