Apache Kafka-kötések az Azure Functionshez – áttekintés

Az Azure Functions Kafka-bővítménye lehetővé teszi az értékek Apache Kafka-témakörökbe való írását kimeneti kötés használatával. Eseményindítóval is meghívhatja a függvényeket a Kafka-témakörökben szereplő üzenetekre válaszul.

Fontos

A Kafka-kötések csak az Elastic Premium Csomag és a Dedikált (App Service) csomaghoz tartozó Functions esetében érhetők el. Ezek csak a Functions-futtatókörnyezet 3.x és újabb verziójában támogatottak.

Művelet Típus
Futtasson egy függvényt egy új Kafka-esemény alapján. Eseményindító
Írjon a Kafka eseménystreambe. Kimeneti kötés

A bővítmény telepítése

A telepített NuGet-csomag a függvényalkalmazásban használt C# módtól függ:

A függvények izolált C# feldolgozói folyamatban futnak. További információ: Útmutató a C# Azure Functions izolált feldolgozói folyamatban való futtatásához.

A NuGet-csomag telepítésével adja hozzá a bővítményt a projekthez.

Csomag telepítése

A Kafka-bővítmény egy bővítménycsomag része, amely a host.json projektfájlban van megadva. Amikor olyan projektet hoz létre, amely a Functions 3.x vagy újabb verzióját célozza, akkor már telepítve kell lennie a csomagnak. További információkért tekintse meg a bővítménycsomagot.

Futtatókörnyezet skálázásának engedélyezése

Ahhoz, hogy a függvények megfelelően skálázhatók legyenek a Prémium csomagban Kafka-eseményindítók és kötések használatakor, engedélyeznie kell a futtatókörnyezeti skálázás monitorozását.

Az Azure Portalon a függvényalkalmazásban válassza a Konfiguráció lehetőséget, és a Függvény futtatókörnyezet beállításai lapon kapcsolja be a futtatókörnyezet skálázásának figyelését.

Képernyőkép az Azure Portal panelről a futtatókörnyezet skálázásának engedélyezéséhez.

host.json beállítások

Ez a szakasz a kötéshez elérhető konfigurációs beállításokat ismerteti a 3.x és újabb verziókban. Gépház a host.json fájlban egy függvényalkalmazás-példány összes függvényére vonatkozik. A függvényalkalmazások konfigurációs beállításairól a 3.x és újabb verziókban az Azure Functions host.json referenciájában talál további információt.

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

Tulajdonság Alapértelmezett Típus Leírás
ChannelFullRetryIntervalInMs 50 Eseményindító Ezredmásodpercben határozza meg az előfizetői újrapróbálkozási időközt, amely akkor használatos, amikor elemeket próbál hozzáadni egy kapacitáson belüli csatornához.
ExecutorChannelCapacity 0 Mindkettő Meghatározza a csatorna üzenetkapacitását. A kapacitás elérése után a Kafka-előfizető felfüggeszti a funkciót.
MaxBatchSize 64 Eseményindító Maximális kötegméret kafka által aktivált függvény meghívásakor.
SubscriberIntervalInSeconds 0 Eseményindító A bejövő üzenetek végrehajtásának minimális gyakoriságát határozza meg függvényenként másodpercben. Csak akkor, ha az üzenetkötet kisebb, mint MaxBatchSize / SubscriberIntervalInSeconds

Az Apache Kafka C/C++ ügyfélkódtárból öröklő alábbi tulajdonságok az host.json szakaszában kafka is támogatottak, akár triggerek, akár kimeneti kötések és triggerek esetén:

Tulajdonság A következőre érvényes: librdkafka egyenértékű
AutoCommitIntervalMs Eseményindító auto.commit.interval.ms
AutoOffsetReset Eseményindító auto.offset.reset
FetchMaxBytes Eseményindító fetch.max.bytes
LibkafkaDebug Mindkettő debug
MaxPartitionFetchBytes Eseményindító max.partition.fetch.bytes
MaxPollIntervalMs Eseményindító max.poll.interval.ms
MetadataMaxAgeMs Mindkettő metadata.max.age.ms
QueuedMinMessages Eseményindító queued.min.messages
QueuedMaxMessagesKbytes Eseményindító queued.max.messages.kbytes
ReconnectBackoffMs Eseményindító reconnect.backoff.max.ms
ReconnectBackoffMaxMs Eseményindító reconnect.backoff.max.ms
SessionTimeoutMs Eseményindító session.timeout.ms
SocketKeepaliveEnable Mindkettő socket.keepalive.enable
StatisticsIntervalMs Eseményindító statistics.interval.ms

Következő lépések