Aracılığıyla paylaş


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 (oturum tabanlı)

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ı 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

Azure Cosmos DB veritabanı

Azure Cosmos DB tetikleyicisi bir KEDA ölçeklendiricisine eşlenmez. Bunun yerine özel ölçeklendirme kullanın.

İşlevler tetikleyicisi, işlev çağrısı başına alınan en fazla öğe sayısını ayarlar. İşlem kapsamı saklı yordamlar için korunur.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı MaxItemsPerInvocation Mevcut Değil
Yapılandırma yolu İşlev tetikleyici özniteliği Mevcut Değil
Varsayılan değer 100 Mevcut Değil

Example

[CosmosDBTrigger(
  databaseName: "ToDoItems",
  containerName: "Items",
  Connection = "CosmosDBConnection",
  MaxItemsPerInvocation = 100)]

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.

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı maxConcurrentRequests Mevcut Değil
Yapılandırma yolu extensions.http.maxConcurrentRequests (host.json) Mevcut Değil
Varsayılan değer 100 (Tüketim), -1 (Premium/Ayrılmış) Mevcut Değil

Blob depolama tetiklemesi

Aşağıdaki tabloda Azure Blob Depolama 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ı maxDegreeOfParallelism blobCount
Yapılandırma yolu extensions.blobs.maxDegreeOfParallelism (host.json) metadata.blobCount
Varsayılan değer 8 × kullanılabilir çekirdek sayısı 5
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
bir işlev uygulamasındaki tüm blob ile tetiklenen işlevler için izin verilen eşzamanlı çağrı sayısını ayarlar. En düşük değer: 1. Ölçeklendirme eylemlerini tetikleyen ortalama hedef değer. (Varsayılan: 5, İsteğe Bağlı)

Çeviri mantığı

metadata.blobCount = extensions.blobs.maxDegreeOfParallelism

Event Grid

Azure Event Grid tetikleyici parametreleri bir KEDA ölçeklendiricisine eşlenmez.

Event Grid tetikleyicisi bir web kancası HTTP isteği kullanır. Bu isteği, HTTP tetikleyicisi ile aynı host.json ayarları kullanarak yapılandırabilirsiniz. Bu ayarlar, kaynak yönetimi için paralel yürütmeyi denetler.

RabbitMQ tetikleyicisi

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

Parametre İşlev yapılandırması KEDA Yapılandırması
Parametre adı prefetchCount value
Yapılandırma yolu extensions.rabbitMQ.prefetchCount (host.json) metadata.value
Varsayılan değer 30 100.50
İşlev tetikleyici açıklaması KEDA ölçekleyici açıklaması
Alıcının aynı anda isteyebileceği ve önbelleğe alabildiği ileti sayısı. Ölçeklendirmeyi tetikleyen ileti kapsamı veya yayımlama/sn hızı. QueueLength modunda değer, ölçeklendirme için hedef kuyruk uzunluğunu temsil eder.

Çeviri mantığı

metadata.value = extensions.rabbitMQ.prefetchCount