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.
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. A host.json fájl beállításai a függvényalkalmazás-példány összes függvényére vonatkoznak. 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 |