Powiązania platformy Apache Kafka dla Azure Functions omówienie

Rozszerzenie platformy Kafka dla Azure Functions umożliwia zapisywanie wartości w tematach platformy Apache Kafka przy użyciu powiązania wyjściowego. Wyzwalacz umożliwia również wywoływanie funkcji w odpowiedzi na komunikaty w tematach platformy Kafka.

Ważne

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

Akcja Typ
Uruchom funkcję na podstawie nowego zdarzenia platformy Kafka. Wyzwalacz
Zapis w strumieniu zdarzeń platformy Kafka. Powiązanie wyjściowe

Instalowanie rozszerzenia

Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C# używanego w aplikacji funkcji:

Funkcje są wykonywane w tym samym procesie co host usługi Functions. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji biblioteki klas języka C# przy użyciu Azure Functions.

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 środowiska uruchomieniowego

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 środowiska uruchomieniowego.

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

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

ustawienia pliku 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ę dotyczącą pliku host.json dla Azure Functions.

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

Właściwość Domyślny Typ Opis
ChannelFullRetryIntervalInMs 50 Wyzwalacz Definiuje interwał ponawiania próby subskrybenta w milisekundach używany podczas próby dodania elementów do kanału o pojemności.
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 komunikatów przychodzących na funkcję w sekundach. Tylko wtedy, gdy wolumin komunikatu jest mniejszy niż MaxBatchSize / SubscriberIntervalInSeconds

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

Właściwość Dotyczy odpowiednik librdkafka
AutoCommitIntervalMs Wyzwalacz auto.commit.interval.ms
AutoOffsetReset Wyzwalacz auto.offset.reset
Pobieraniemaxbajtów 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 nawiązywanie połączenia Zwrotnego z maszynami 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