Verwendung von Lambda mit selbstverwaltetem Apache Kafka - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Lambda mit selbstverwaltetem Apache Kafka

Anmerkung

Wenn Sie Daten an ein anderes Ziel als eine Lambda-Funktion senden oder die Daten vor dem Senden anreichern möchten, finden Sie weitere Informationen unter Amazon EventBridge Pipes.

Lambda unterstützt Apache Kafka als Ereignisquelle. Apache Kafka ist eine Open-Source-Event-Streaming-Plattform, die Workloads wie Datenpipelines und Streaming-Analysen unterstützt.

Sie können den AWS verwalteten Kafka-Service Amazon Managed Streaming for Apache Kafka (AmazonMSK) oder einen selbstverwalteten Kafka-Cluster verwenden. Einzelheiten zur Verwendung von Lambda mit Amazon finden Sie MSK unterLambda mit Amazon verwenden MSK.

In diesem Thema wird die Verwendung von Lambda mit einem selbstverwalteten Kafka-Cluster beschrieben. In der AWS Terminologie umfasst ein selbstverwalteter Cluster auch nicht AWS gehostete Kafka-Cluster. Sie können Ihren Kafka-Cluster beispielsweise bei einem Cloud-Anbieter wie Confluent Cloud hosten.

Apache Kafka als Ereignisquelle funktioniert ähnlich wie die Verwendung von Amazon Simple Queue Service (AmazonSQS) oder Amazon Kinesis. Lambda fragt intern neue Nachrichten von der Ereignisquelle ab und ruft dann synchron die Ziel-Lambda-Funktion auf. Lambda liest die Nachrichten in Batches und stellt diese Ihrer Funktion als Ereignisnutzlast zur Verfügung. Die maximale Batchgröße ist konfigurierbar. (Der Standardwert beträgt 100 Nachrichten.)

Warnung

Lambda-Ereignisquellenzuordnungen verarbeiten jedes Ereignis mindestens einmal, und es kann zu einer doppelten Verarbeitung von Datensätzen kommen. Um mögliche Probleme im Zusammenhang mit doppelten Ereignissen zu vermeiden, empfehlen wir Ihnen dringend, Ihren Funktionscode idempotent zu machen. Weitere Informationen finden Sie im Knowledge Center unter Wie mache ich meine Lambda-Funktion idempotent?. AWS

Für Kafka-basierte Ereignisquellen unterstützt Lambda die Verarbeitung von Steuerungsparametern wie Batch-Fenster und -Größe. Weitere Informationen finden Sie unter Batching-Verhalten.

Ein Beispiel für die Verwendung von selbstverwaltetem Kafka als Ereignisquelle finden Sie im Compute-Blog unter Verwenden von selbst gehostetem Apache Kafka als Ereignisquelle für. AWS Lambda AWS

Beispielereignis

Lambda sendet den Batch von Nachrichten im Ereignisparameter, wenn es Ihre Lambda-Funktion aufruft. Die Ereignisquelle enthält ein Array von Nachrichten. Jedes Array-Element enthält Details zum Kafka-Thema und Kafka-Partitions-ID, zusammen mit einem Zeitstempel und einer base64-codierten Nachricht.

{ "eventSource": "SelfManagedKafka", "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092", "records":{ "mytopic-0":[ { "topic":"mytopic", "partition":0, "offset":15, "timestamp":1545084650987, "timestampType":"CREATE_TIME", "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers":[ { "headerKey":[ 104, 101, 97, 100, 101, 114, 86, 97, 108, 117, 101 ] } ] } ] } }