Omówienie powiązań platformy Apache Kafka dla usługi Azure Functions

Rozszerzenie platformy Kafka dla usługi Azure Functions umożliwia zapisywanie wartości w tematach platformy Apache Kafka przy użyciu powiązania wyjściowego. Możesz również użyć wyzwalacza, aby wywołać funkcje w odpowiedzi na komunikaty w tematach platformy Kafka.

Ważne

Powiązania platformy Kafka są dostępne tylko dla funkcji w ramach planu Elastic Premium idedykowanego (App Service). Są one obsługiwane tylko w wersji 3.x i nowszej środowiska uruchomieniowego usługi Functions.

Akcja Typ
Uruchamianie funkcji na podstawie nowego zdarzenia platformy Kafka. Wyzwalacz
Zapisz w strumieniu zdarzeń platformy Kafka. Powiązanie wyjściowe

Instalowanie rozszerzenia

Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:

Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.

Dodaj rozszerzenie do projektu, instalując ten pakiet NuGet.

Instalowanie pakietu

Rozszerzenie platformy Kafka jest częścią pakietu rozszerzeń określonego w pliku projektu host.json. Podczas tworzenia projektu przeznaczonego dla usługi Functions w wersji 3.x lub nowszej powinien być już zainstalowany ten pakiet. Aby dowiedzieć się więcej, zobacz pakiet rozszerzeń.

Włączanie skalowania w czasie wykonywania

Aby umożliwić prawidłowe skalowanie funkcji w planie Premium podczas korzystania z wyzwalaczy i powiązań platformy Kafka, należy włączyć monitorowanie skalowania w czasie wykonywania.

W witrynie Azure Portal w aplikacji funkcji wybierz pozycję Konfiguracja i na karcie Ustawienia środowiska uruchomieniowego funkcji włącz monitorowanieskalowania środowiska uruchomieniowego.

Zrzut ekranu przedstawiający panel witryny Azure Portal umożliwiający skalowanie środowiska uruchomieniowego.

ustawienia host.json

W tej sekcji opisano ustawienia konfiguracji dostępne dla tego powiązania w wersjach 3.x i nowszych. Ustawienia w pliku host.json mają zastosowanie do wszystkich funkcji w wystąpieniu aplikacji funkcji. Aby uzyskać więcej informacji na temat ustawień konfiguracji aplikacji funkcji w wersjach 3.x i nowszych, zobacz dokumentację host.json dla usługi Azure Functions.

{
    "version": "2.0",
    "extensions": {
        "kafka": {
            "maxBatchSize": 64,
            "SubscriberIntervalInSeconds": 1,
            "ExecutorChannelCapacity": 1,
            "ChannelFullRetryIntervalInMs": 50
        }
    }
}

Właściwości Domyślny Type Opis
ChannelFullRetryIntervalInMs 50 Wyzwalacz Definiuje interwał ponawiania prób subskrybenta używany w milisekundach podczas próby dodania elementów do kanału at-capacity.
ExecutorChannelCapacity 1 Oba Definiuje pojemność komunikatów kanału. Po osiągnięciu pojemności subskrybent platformy Kafka wstrzymuje się do momentu, aż funkcja dogoni.
MaxBatchSize 64 Wyzwalacz Maksymalny rozmiar partii podczas wywoływania funkcji wyzwalanej przez platformę Kafka.
SubskrybentIntervalInSeconds 1 Wyzwalacz Definiuje minimalną częstotliwość wykonywania przychodzących komunikatów na funkcję w sekundach. Tylko wtedy, gdy wolumin komunikatów jest mniejszy niż MaxBatchSize / SubscriberIntervalInSeconds

Następujące właściwości dziedziczone z biblioteki klienta platformy Apache Kafka C/C++ są również obsługiwane w kafka sekcji host.json dla wyzwalaczy lub obu powiązań wyjściowych i wyzwalaczy:

Właściwości Dotyczy librdkafka odpowiednik
AutoCommitIntervalMs Wyzwalacz auto.commit.interval.ms
AutoOffsetReset Wyzwalacz auto.offset.reset
FetchMaxBytes Wyzwalacz fetch.max.bytes
LibkafkaDebug Oba debug
MaxPartitionFetchBytes Wyzwalacz max.partition.fetch.bytes
MaxPollIntervalMs Wyzwalacz max.poll.interval.ms
MetadataMaxAgeMs Oba metadata.max.age.ms
QueuedMinMessages Wyzwalacz queued.min.messages
QueuedMaxMessagesKbytes Wyzwalacz queued.max.messages.kbytes
Ponowne łączeniebackoffMs Wyzwalacz reconnect.backoff.max.ms
Ponowne łączenieBackoffMaxMs Wyzwalacz reconnect.backoff.max.ms
SessionTimeoutMs Wyzwalacz session.timeout.ms
SocketKeepaliveEnable Oba socket.keepalive.enable
StatisticsIntervalMs Wyzwalacz statistics.interval.ms

Następne kroki