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

Azure İşlevleri'ta çalıştırmak için bireysel fonksiyonlarınızı planlayıp geliştirirken kodun kendisine odaklanın. Azure İşlevleri yalnızca kod projenizi Azure'daki bir işlev uygulamasına dağıtmayı kolaylaştırır. Projenizi bir Linux fonksiyon uygulamasına dağıttığınızda, kodunuz Azure İşlevleri'ın otomatik olarak sizin için oluşturduğu bir konteynerde çalışır. Bu konteyner, Fonksiyon yönetim araçlarıyla sorunsuz entegre olur.

İşlevler kapsayıcılı işlev uygulaması dağıtımlarını da destekler. Konteynerize dağıtımda, desteklenen bir temel imajdan yerel bir Docker konteynerinde kendi fonksiyon uygulama örneğinizi 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

Tip

Çoğu konteynerize iş yükü için, fonksiyon uygulamalarınızı Azure Container Apps'te barındırın. Container Apps, yerleşik olay odaklı ölçeklendirme, sıfıra ölçekleme ve GPU desteğiyle tamamen yönetilmiş, sunucusuz bir Kubernetes tabanlı ortam sunar. Başlamak için Azure İşlevleri on Azure Container Apps sayfasına bakabilirsiniz.

Azure'da konteynerize fonksiyon uygulamalarınızı barındırmak için birkaç seçeneğiniz var:

Barındırma seçeneği Benefits
Azure Container Apps (recommended) Azure Container Apps, fonksiyon uygulama konteynerlerinizi kaynak sağlayıcısını kullanarak yerel Microsoft.App olarak barındırır ve yönetir. Fonksiyonlarınızı, açık kaynak izleme, mTLS, Dapr ve KEDA için dahili destekle tamamen yönetilen, sunucusuz bir Kubernetes tabanlı ortamda çalıştırın. Sıfıra ölçeklenen, sunucusuz kullandığınız için ödeme yapmayı destekliyor, özel donanım ve iş yükü profilleri aracılığıyla GPU'ları destekliyor. Aynı Fonksiyon programlama modeli ve tetikleyicilerden faydalanırken, Konteyner Uygulamalarının tam özellik setini elde edersiniz. Azure'da konteynerize fonksiyon uygulamaları için önerilen hosting seçeneği.
Azure Container Apps (legacy) Azure İşlevleri, kaynak sağlayıcısını kullanarak Microsoft.Web konteynerize fonksiyon uygulamalarının Container Apps ortamına dağıtılması için entegre destek sağlar. Şu anda desteklense de, bu seçenek gelecekte kullanımdan kaldırılması planlanıyor. Yeni iş yükleri için önerilen Container Apps barındırma seçeneğini kullanın.
Azure İşlevleri Kapsayıcıya alınmış işlev uygulamalarınızı Azure İşlevleri'ta Elastik Premium planında veya Özel App Service planında çalıştırarak barındırabilirsiniz. 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 Konteyner Uygulamaları (önerilir) Container Apps (legacy)1 Premium plan Özel plan Kubernetes
Ürün desteği Yes Yes Yes Yes No
Fonksiyon portalı entegrasyonu Yes No Yes Yes No
Olay temelli ölçeklendirme Evet (ölçek kuralları) Yes5 Yes No No
Maksimum ölçek (örnekler) 10002 10002 1003 10-304 Kümelere göre değişir
Sıfıra indirgenebilir örnekler Yes Yes No No KEDA
Uygulama süresi sınırı Unbounded6 Unbounded6 Unbounded7 Unbounded8 Hiçbiri
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 Ölçek kuralları En az replikalar 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. Gelecekteki kullanımdan çıkarılması planlanıyor. Bunun yerine, yerel Container Apps barındırma kullanın.
  2. 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.
  3. Bazı bölgelerde Premium plandaki Linux uygulamaları 100 örneğe ölçeklendirilebilir. Daha fazla bilgi için Premium plan makalesine bakın.
  4. Ç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.
  5. 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.
  6. 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.
  7. 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.
  8. 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 konteynerlerinizi oluştururken, konteynerinizin temel görüntüsünü en son desteklenen temel görseğe güncel tutun. 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. Konteynerinizi en son temel görseminden düzenli olarak güncelleyin ve güncellenmiş konteyner sürümünüzü yeniden dağıtın.

İş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, etiket V4 Fonksiyonları çalışma zamanını göstermek için ' 4- Bull' ile başlar. Yeni küçük versiyonlar çıktığında, bu etiket yeni versiyona işaret edecek şekilde güncellenir. Özel görselinizi periyodik olarak yeniden oluştururken, yeni sürümleri aynı etiketten çekiyorsunuz, böylece uygulamanızda aynı güncellemeler oluyor. Küçük çalışma zamanı sürümlerini belirten etiketler kullanmayın, çünkü bu etiketler güncelleme almıyor. Uygulamanız, özel görselinizi ne sıklıkla yeniden oluşturursanız yapın, muhtemelen 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

(Süreçteki model için destek 10 Kasım 2026'da sona eriyor. Mümkün olan en kısa sürede izole çalışan modeline geçin .)
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 yeteneklere ihtiyacınız yoksa, ek eksiz temel görüntüleri -appservice kullanın.

Important

Dockerfile'ınızda sadece önceki etiketlerden birine sahip olmak yeterli değil. Ö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ü çekip yeniden oluşturmazsanız, uygulamanız eski temel imajda çalışmaya devam eder.

Kendi konteynerize uygulamanızı özel bir görüntü kullanarak oluşturduğunuzda veya dağıttığınızda, özel görselinizin yayınlanan ana görsellerle up-togüncel kalmasını sağlamakla sorumlusunuz. 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. Düzenli olarak temel görselin en son sürümünü çekin, özel konteyner imajınızı yeniden oluşturun ve uygulamanızı yeniden dağıtın.

Bazı durumlarda, Microsoft platform düzeyinde değişiklikler yapmak zorunda kalıyor; bu değişiklikler, eski bir temel görüntü kullanan özel bir konteyner uygulamasının düzgün çalışmayı durdurabileceği anlamına geliyor. Böyle büyük değişiklikler için, Microsoft güncellenmiş görselleri önceden yayınlıyor ki düzenli güncellemeler alan uygulamalar olumsuz etkilenmesin. Ö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 vakası sırasında, Microsoft uygulamanızın eski veya desteklenmeyen bir sürümde olduğu için sorun yaşadığını tespit ederse, Microsoft destek ile devam etmeden önce konteynerinizi en son temel görüntü sürümüne güncellemenizi ister.

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:
Deploy functions to Azure Container Apps (recommended) Azure Container Apps'te ilk kapsayıcılı işlevlerinizi oluşturma
İlk konteynerize fonksiyonlarımı yerel olarak oluştur Yerel Linux kapsayıcısında işlev uygulaması oluşturma
Konteynerize fonksiyonları Premium veya Dedicated plana dağıtın İlk kapsayıcılı Azure İşlevleri oluşturma