Megosztás a következőn keresztül:


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

Ha használni szeretné ezt a kötéskiterjesztést az alkalmazásban, győződjön meg arról, hogy a projekt gyökerében található host.json fájl tartalmazza a extensionBundle következő hivatkozást:

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

Ebben a példában az version érték [4.0.0, 5.0.0) arra utasítja a Functions-gazdagépet, hogy 4.0.0 legalább, de annál kisebb 5.0.0csomagverziót használjon, amely tartalmazza a 4.x összes lehetséges verzióját. Ez a jelölés hatékonyan fenntartja az alkalmazást a v4.x bővítménycsomag legújabb elérhető alverzióján.

Ha lehetséges, a legújabb bővítménycsomag főverziót kell használnia, és engedélyeznie kell, hogy a futtatókörnyezet automatikusan fenntartsa a legújabb alverziót. A legújabb csomag tartalmát a bővítménykötegek kiadási oldalán tekintheti meg. További információ: Azure Functions-bővítménykötegek.

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.

  1. Az Azure Portal függvényalkalmazásában válassza a Konfiguráció lehetőséget.

  2. A Függvény futtatókörnyezet beállításai lapon válassza a Futtatókörnyezet skálázásának monitorozásalehetőséget.

    Képernyőkép az Azure Portal területérő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. 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

Következő lépések