Container Apps'te Azure İşlevleri KEDA ölçeklendirme eşlemeleri

Azure Container Apps'te Azure İşlevleri'ni dağıttığınızda platform, İşlevler tetikleyici parametrelerinizi otomatik olarak KEDA ölçeklendirme yapılandırmalarına çevirir. Bu çeviri, İşlevlerinizin çeşitli olay kaynaklarından gelen iş yüküne göre uygun şekilde ölçeklendirilmesini sağlar.

Ölçeklendirme eşlemeleri nasıl çalışır?

Container Apps üzerinde Azure İşlevleri, olay kaynaklarını izlemek ve işlev uygulamalarınızı ölçeklendirmek için KEDA kullanır. Platform otomatik olarak:

  1. İşlev parametrelerini çevirir: İşlevler tetikleyici yapılandırmanızı (kaynak host.json veya tetikleyici öznitelikleri) KEDA ölçeklendiricisi meta verilerine dönüştürür.

  2. Ölçeklendirme kurallarını uygular: Uygun KEDA ölçeklendirme kurallarını oluşturmak için çevrilmiş parametreleri kullanır.

  3. Olayları izler: KEDA, olay kaynaklarınızı bu kurallara göre sürekli izler.

  4. Örnekleri ölçeklendirir: kapsayıcı örneklerinizin ölçeğini iş yüküne göre otomatik olarak büyütür veya küçültür.

Aşağıdaki bölümlerde her tetikleyici türü için belirli parametre eşlemeleri ayrıntılı olarak açıklanmıştır.

Parametreleri ölçeklendirme

Aşağıdaki bölümlerde Azure İşlevleri tetikleyici parametrelerinin desteklenen her tetikleyici türü için ilgili KEDA ölçekleyici yapılandırmalarıyla nasıl eşlendiği açıklanır.

Azure Depolama Kuyruğu

Aşağıdaki tabloda , Azure Depolama Kuyruğu tetikleyici parametrelerininKEDA ölçekleyici yapılandırma değerleriyle nasıl eşlenmiş olduğu gösterilmektedir.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı batchSize queueLength
Yapılandırma yolu extensions.queues.batchSize (host.json) metadata.queueLength
Varsayılan değer 16 5
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
İşlevler çalışma zamanının paralel olarak alıp işlediği kuyruk iletilerinin sayısı. İşlenen sayı öğesine ulaştığında newBatchThresholdçalışma zamanı başka bir toplu iş getirir. İşlev başına en fazla eşzamanlı ileti sayısı artı'dır batchSizenewBatchThreshold. Uygulama birden çok VM'ye ölçeklendirilmediği sürece eşzamanlılığı ortadan kaldırmak için 1 olarak ayarlayın batchSize . batchSize Maksimum değer 32'dir. Ölçekleyiciye geçirilen kuyruk uzunluğu için hedef değer. Örneğin, bir pod 10 iletiyi işleyebilirse kuyruk uzunluğu hedefini 10 olarak ayarlayın. Kuyruktaki gerçek ileti sayısı 30 ise ölçekleyici üç poda ölçeklendirilir.

Çeviri mantığı

metadata.queueLength = extensions.queues.batchSize

Azure Service Bus (tek gönderim)

Aşağıdaki tabloda Azure Service Bus tetikleyicisi parametrelerininKEDA ölçekleyici yapılandırma değerleriyle nasıl eşlenmiş olduğu gösterilmektedir.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı maxConcurrentCalls messageCount
Yapılandırma yolu extensions.serviceBus.maxConcurrentCalls (host.json) metadata.messageCount
Varsayılan değer 16 5
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
Ölçeklendirilmiş örnek başına en fazla eşzamanlı çağrı sayısını sınırlar. Çok çekirdekli örneklerde maksimum değer çekirdek sayısıyla çarpılır. Bu ayarı yalnızca false olduğunda isSessionsEnabled kullanın. Azure Service Bus kuyruğunuzdaki veya ölçeklendirilecek konu başlığınızdaki etkin iletilerin sayısı.

Çeviri mantığı

metadata.messageCount = extensions.serviceBus.maxConcurrentCalls

Azure Service Bus (tek dağıtım, oturum tabanlı)

Aşağıdaki tabloda Azure Service Bus tetikleyici parametrelerinin doğru olduğunda isSessionsEnabledKEDA ölçekleyici yapılandırma değerleriyle nasıl eşlenmiş olduğu gösterilmektedir.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı maxConcurrentSessions messageCount
Yapılandırma yolu extensions.serviceBus.maxConcurrentSessions (host.json) metadata.messageCount
Varsayılan değer 8 5
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
Ölçeklendirilmiş örnek başına eşzamanlı olarak işlenen en fazla oturum sayısı. Bu ayarı yalnızca doğru olduğunda isSessionsEnabled kullanın. Azure Service Bus kuyruğunuzdaki veya ölçeklendirilecek konu başlığınızdaki etkin iletilerin sayısı.

Çeviri mantığı

metadata.messageCount = extensions.serviceBus.maxConcurrentSessions

Azure Service Bus (toplu işlem)

Aşağıdaki tabloda Azure Service Bus tetikleyici parametrelerinin toplu işlem için KEDA ölçekleyici yapılandırma değerleriyle nasıl eşlenmesi gösterilmektedir.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı maxMessageBatchSize messageCount
Yapılandırma yolu extensions.serviceBus.maxMessageBatchSize (host.json) metadata.messageCount
Varsayılan değer 1000 5
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
Toplu işleme için her işlev çağrısına geçirilen ileti sayısı üst sınırı. Azure Service Bus kuyruğunuzdaki veya ölçeklendirilecek konu başlığınızdaki etkin iletilerin sayısı.

Çeviri mantığı

metadata.messageCount = extensions.serviceBus.maxMessageBatchSize

Azure Event Hubs

Aşağıdaki tabloda , Azure Event Hubs tetikleyici parametrelerininKEDA ölçekleyici yapılandırma değerleriyle nasıl eşlenmiş olduğu gösterilmektedir.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı targetUnprocessedEventThreshold unprocessedEventThreshold
Yapılandırma yolu extensions.eventHubs.targetUnprocessedEventThreshold (host.json) metadata.unprocessedEventThreshold
Varsayılan değer sıfır 64
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
İşlev örneği başına istenen sayıda işlenmemiş olay. Hedef tabanlı ölçeklendirme için kullanılır. Ölçeklendirme eylemlerini tetikleyen ortalama hedef değer.

Çeviri mantığı

metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold

Apache Kafka

Aşağıdaki tabloda Apache Kafka tetikleyici parametrelerininKEDA ölçekleyici yapılandırma değerleriyle nasıl eşlenmiş olduğu gösterilmektedir.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı LagThreshold lagThreshold
Yapılandırma yolu İşlev tetikleyici özniteliği metadata.lagThreshold
Varsayılan değer 1000 10
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
Kafka tetikleyicisi için örnek başına hedef yürütmeler olarak bu değeri kullanın. İstenen örneklerin sayısı, tüketici gecikmesinin LagThresholdtoplamına göre hesaplanır.
Ölçeklendirme eylemlerini tetiklemek için toplam gecikme (tüm bölüm gecikmelerinin toplamı) için hedef olarak bu değeri kullanın.

Example

[KafkaTrigger(
  "BrokerList",
  "topic",
  ConsumerGroup = "$Default",
  LagThreshold = 100)]

Çeviri mantığı

metadata.lagThreshold = LagThreshold

HTTP tetikleyicisi

HTTP tetikleyicisi bir KEDA ölçeklendiricisine eşlenmez. Bunun yerine, Container Apps yerleşik HTTP ölçeklendirme özelliklerini veya dış izleme çözümlerini kullanın.