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 i dedykowanego (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 monitorowanie skalowania ś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 |