Sdílet prostřednictvím


Přehled vazeb Apache Kafka pro Azure Functions

Rozšíření Kafka pro Azure Functions umožňuje psát hodnoty do témat Apache Kafka pomocí výstupní vazby. Trigger můžete také použít k vyvolání funkcí v reakci na zprávy v tématech Kafka.

Důležité

Vazby Kafka jsou dostupné jenom pro funkce v plánu Elastic Premium a vyhrazeném plánu (App Service). Podporují se pouze ve verzi 3.x a novější verzi modulu runtime Functions.

Akce Typ
Spusťte funkci založenou na nové události Kafka. Spouštěč
Zapište do streamu událostí Kafka. Výstupní vazba

Instalace rozšíření

Balíček NuGet rozšíření, který nainstalujete, závisí na režimu jazyka C#, který používáte ve své aplikaci funkcí:

Funkce se spouštějí v izolovaném pracovním procesu C#. Další informace najdete v průvodci spuštěním služby Azure Functions v jazyce C# v izolovaném pracovním procesu.

Přidejte rozšíření do projektu instalací tohoto balíčku NuGet.

Instalace sady

Pokud chcete v aplikaci použít toto rozšíření vazeb, ujistěte se, že soubor host.json v kořenovém adresáři projektu obsahuje tento extensionBundle odkaz:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

V tomto příkladu version hodnota [4.0.0, 5.0.0) dává hostiteli Functions pokyn, aby používal verzi sady, která je alespoň 4.0.0 , ale menší než 5.0.0, která zahrnuje všechny potenciální verze 4.x. Tato notace efektivně udržuje vaši aplikaci na nejnovější dostupné podverzi sady rozšíření v4.x.

Pokud je to možné, měli byste použít nejnovější hlavní verzi sady rozšíření a umožnit modulu runtime automaticky udržovat nejnovější podverzi. Obsah nejnovější sady můžete zobrazit na stránce verze sady rozšíření. Další informace najdete v sadách rozšíření Azure Functions.

Povolení škálování za běhu

Pokud chcete, aby se funkce při použití triggerů a vazeb Kafka správně škálovaly v plánu Premium, musíte povolit monitorování škálování modulu runtime.

  1. Na webu Azure Portal ve vaší aplikaci funkcí vyberte Konfigurace.

  2. Na kartě Nastavení modulu runtime funkce pro monitorování škálování modulu runtime vyberte Zapnuto.

    Snímek obrazovky oblasti webu Azure Portal pro povolení škálování za běhu

nastavení host.json

Tato část popisuje nastavení konfigurace dostupné pro tuto vazbu ve verzích 3.x a vyšších. Nastavení v souboru host.json platí pro všechny funkce v instanci aplikace funkcí. Další informace o nastavení konfigurace aplikace funkcí ve verzích 3.x a novějších verzích najdete v referenčních informacích k host.json pro Azure Functions.

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

Vlastnost Výchozí Typ Popis
ChannelFullRetryIntervalInMs 50 Spouštěč Definuje interval opakování odběratele v milisekundách, který se používá při pokusu o přidání položek do kanálu kapacity.
ExecutorChannelCapacity 0 Oba Definuje kapacitu zpráv kanálu. Po dosažení kapacity se předplatitel Kafka pozastaví, dokud se funkce nezachytí.
Maximální velikost dávky 64 Spouštěč Maximální velikost dávky při volání funkce aktivované platformou Kafka
SubscriberIntervalInSeconds 0 Spouštěč Definuje minimální frekvenci spouštění příchozích zpráv na funkci v sekundách. Pouze v případech, kdy je svazek zprávy menší než MaxBatchSize / SubscriberIntervalInSeconds

Následující vlastnosti, které jsou zděděny z klientské knihovny Apache Kafka C/C++, jsou podporovány také v kafka části host.json pro aktivační události nebo obě výstupní vazby a triggery:

Vlastnost Platí pro ekvivalent librdkafka
AutoCommitIntervalMs Spouštěč auto.commit.interval.ms
AutoOffsetReset Spouštěč auto.offset.reset
FetchMaxBytes Spouštěč fetch.max.bytes
LibkafkaDebug Oba debug
MaxPartitionFetchBytes Spouštěč max.partition.fetch.bytes
MaxPollIntervalMs Spouštěč max.poll.interval.ms
MetadataMaxAgeMs Oba metadata.max.age.ms
QueuedMinMessages Spouštěč queued.min.messages
QueuedMaxMessagesKbytes Spouštěč queued.max.messages.kbytes
Znovu připojitBackoffMs Spouštěč reconnect.backoff.max.ms
Opětovné připojeníBackoffMaxMs Spouštěč reconnect.backoff.max.ms
SessionTimeoutMs Spouštěč session.timeout.ms
SocketKeepaliveEnable Oba socket.keepalive.enable
StatisticsIntervalMs Spouštěč statistics.interval.ms

Další kroky