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