Verarbeitung von Amazon MSK-Nachrichten mit Lambda - 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.

Verarbeitung von Amazon MSK-Nachrichten mit Lambda

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.

Hinzufügen von Amazon MSK als Ereignisquelle

Um ein Ereignisquellen-Mapping zu erstellen, fügen Sie Amazon MSK als Lambda-Funktionsauslöser mithilfe der Lambda-Konsole, eines AWS-SDKs oder AWS Command Line Interface (AWS CLI) hinzu. Beachten Sie, dass Lambda beim Hinzufügen von Amazon MSK als Auslöser die VPC-Einstellungen des Amazon-MSK-Clusters annimmt, nicht die VPC-Einstellungen der Lambda-Funktion.

In diesem Abschnitt wird beschrieben, wie Sie mit der Lambda-Konsole und AWS CLI ein Ereignisquellen-Zuweisung erstellen.

Voraussetzungen

  • Ein Amazon-MSK-Cluster und ein Kafka-Thema. Weitere Informationen finden Sie unter Erste Schritte mit Amazon MSK im Entwicklerhandbuch für Amazon Managed Streaming for Apache Kafka.

  • Eine Ausführungsrolle mit der Berechtigung, auf die AWS-Ressourcen zuzugreifen, die Ihr MSK-Cluster verwendet.

Anpassbare Konsumentengruppen-ID

Wenn Sie Kafka als Ereignisquelle einrichten, können Sie eine Konsumentengruppen-ID angeben. Diese Konsumentengruppen-ID ist eine vorhandene Kennung für die Kafka-Konsumentengruppe, der Ihre Lambda-Funktion beitreten soll. Mit diesem Feature können Sie alle laufenden Kafka-Datensatzverarbeitungs-Setups nahtlos von anderen Verbrauchern auf Lambda migrieren.

Wenn Sie eine Konsumentengruppen-ID angeben und sie innerhalb dieser Konsumentengruppe weitere aktive Poller gibt, verteilt Kafka Nachrichten an alle Konsumenten. Mit anderen Worten, Lambda erhält nicht alle Nachrichten zum Thema Kafka. Wenn Sie möchten, dass Lambda alle Nachrichten im Thema verarbeitet, deaktivieren Sie alle anderen Poller in dieser Konsumentengruppe.

Wenn Sie außerdem eine Konsumentengruppen-ID angeben und Kafka eine gültige vorhandene Konsumentengruppe mit derselben ID findet, ignoriert Lambda die StartingPosition-Parameter für Ihre Ereignisquellen-Zuweisung. Stattdessen beginnt Lambda mit der Verarbeitung von Datensätzen gemäß dem zugesagten Versatz der Konsumentengruppe. Wenn Sie eine Konsumentengruppen-ID angeben und Kafka keine vorhandene Konsumentengruppe finden kann, konfiguriert Lambda Ihre Ereignisquelle mit der angegebenen StartingPosition.

Die Konsumentengruppen-ID, die Sie angeben, muss unter all Ihren Kafka-Ereignisquellen eindeutig sein. Nachdem Sie eine Kafka-Ereignisquellenzuordnung mit der angegebenen Konsumentengruppen-ID erstellt haben, können Sie diesen Wert nicht aktualisieren.

Hinzufügen eines Amazon MSK-Auslösers (Konsole)

Befolgen Sie diese Schritte, um Ihren Amazon-MSK-Cluster und ein Kafka-Thema als Auslöser für Ihre Lambda-Funktion hinzuzufügen.

So fügen Sie Ihrer Lambda-Funktion (Konsole) einen Amazon-MSK-Auslöser hinzu
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie den Namen Ihrer Lambda-Funktion aus.

  3. Wählen Sie unter Function overview (Funktionsübersicht) die Option Add trigger (Trigger hinzufügen).

  4. Führen Sie unter Auslöser-Konfiguration die folgenden Schritte aus:

    1. Wählen Sie den MSK-Auslösertyp.

    2. Wählen Sie für MSK-Cluster Ihren Cluster aus.

    3. Geben Sie für Batchgröße die maximale Anzahl von Nachrichten ein, die in einem einzelnen Batch empfangen werden sollen.

    4. Geben Sie für Batch window (Batch-Fenster) die maximale Zeit in Sekunden ein, die Lambda mit dem Sammeln von Datensätzen verbringt, bevor die Funktion aufgerufen wird.

    5. Geben Sie für Themenname den Namen eines Kafka-Themas ein.

    6. (Optional) Geben Sie für Konsumentengruppen-ID die ID einer Kafka-Konsumentengruppe ein, der Sie beitreten möchten.

    7. (Optional) Wählen Sie für Startposition die Option Neueste, um mit dem Lesen des Streams aus dem letzten Datensatz zu beginnen, Horizont trimmen, um mit dem frühesten verfügbaren Datensatz zu beginnen, oder Am Zeitstempel, um einen Zeitstempel anzugeben, ab dem mit dem Lesen begonnen werden soll.

    8. (Optional) Wählen Sie bei Authentication (Authentifizierung) den Geheimschlüssel zur Authentifizierung bei den Brokern in Ihrem MSK-Cluster aus.

    9. Um den Auslöser zu Testzwecken in einem deaktivierten Zustand zu erstellen (empfohlen), deaktivieren Sie Auslöser aktivieren. Um den Auslöser sofort zu aktivieren, wählen Sie Auslöser aktivieren.

  5. Wählen Sie hinzufügen aus, um den Auslöser zu erstellen.

Hinzufügen eines Amazon-MSK-Auslösers (AWS CLI)

Verwenden Sie die folgenden AWS CLI-Beispielbefehle, um einen Amazon-MSK-Auslöser für Ihre Lambda-Funktion zu erstellen und anzuzeigen.

Erstellen eines Auslösers mit dem AWS CLI

Beispiel – Erstellen Sie eine Zuordnung von Ereignisquellen für einen Cluster, der die IAM-Authentifizierung verwendet

Im folgenden Beispiel wird der create-event-source-mapping-Befehl AWS CLI verwendet, um eine Lambda-Funktion namens my-kafka-function einem Kafka-Thema namens AWSKafkaTopic zuzuordnen. Die Ausgangsposition des Themas ist auf LATEST festgelegt. Wenn der Cluster die rollenbasierte IAM-Authentifizierung verwendet, benötigen Sie kein SourceAccessConfiguration-Objekt. Beispiel:

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function
Beispiel – Erstellen Sie eine Zuordnung von Ereignisquellen für einen Cluster, der die SASL/SCRAM-Authentifizierung verwendet

Wenn der Cluster die SASL/SCRAM-Authentifizierung verwendet, müssen Sie ein SourceAccessConfiguration-Objekt einfügen, das SASL_SCRAM_512_AUTH angibt, und einen geheimen ARN von Secrets Manager.

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'
Beispiel – Erstellen Sie eine Zuordnung von Ereignisquellen für einen Cluster, der die mTLS-Authentifizierung verwendet

Wenn der Cluster die mTLS-Authentifizierung verwendet, müssen Sie ein SourceAccessConfiguration-Objekt einfügen, das CLIENT_CERTIFICATE_TLS_AUTH angibt, und einen geheimen ARN von Secrets Manager.

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:cluster/my-cluster/fc2f5bdf-fd1b-45ad-85dd-15b4a5a6247e-2 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret"}]'

Weitere Informationen finden Sie in der CreateEventSourceMapping-API-Referenzdokumentation.

Anzeigen des Zustands mithilfe des AWS CLI

Das folgende Beispiel verwendet get-event-source-mapping AWS CLI, um den Status der Zuordnung von Ereignisquellen zu beschreiben, die Sie erstellt haben.

aws lambda get-event-source-mapping \ --uuid 6d9bce8e-836b-442c-8070-74e77903c815

Amazon-MSK-Konfigurationsparameter

Alle Lambda-Ereignisquellentypen verwenden dieselben API-Operationen CreateEventSourceMapping und UpdateEventSourceMapping. Allerdings gelten nur einige der Parameter für Amazon MSK.

Parameter Erforderlich Standard Hinweise

AmazonManagedKafkaEventSourceConfig

N

Enthält das Feld ConsumerGroupId, das standardmäßig auf einen eindeutigen Wert festgelegt ist.

Kann nur auf „Erstellen“ festgelegt werden

BatchSize

N

100

Höchstwert: 10 000.

DestinationConfig

N

N/A

Erfassen von verworfenen Chargen für eine Amazon MSK Ereignisquelle

Aktiviert

N

True

EventSourceArn

Y

N/A

Kann nur auf „Erstellen“ festgelegt werden

FilterCriteria

N

N/A

Steuern Sie, welche Ereignisse Lambda an Ihre Funktion sendet

FunctionName

Y

N/A

KMSKeyArn

N

N/A

Verschlüsselung der Filterkriterien

MaximumBatchingWindowInSeconds

N

500 ms

Batching-Verhalten

ProvisionedPollersConfig

N

MinimumPollers: Standardwert von 1, wenn nicht angegeben

MaximumPollers: Standardwert von 200, wenn nicht angegeben

Konfigurieren des bereitgestellten Modus

SourceAccessConfigurations

N

Keine Anmeldedaten

Anmeldeinformationen zur SASL/SCRAM- oder CLIENT_CERTIFICATE_TLS_AUTH (MutualTLS)-Authentifizierung für Ihre Ereignisquelle

StartingPosition

Y

N/A

AT_TIMESTAMP, TRIM_HORIZON, oder LATEST

Kann nur auf „Erstellen“ festgelegt werden

StartingPositionTimestamp

N

N/A

Erforderlich, wenn StartingPosition auf AT_TIMESTAMP gesetzt ist

Tags

N

N/A

Verwendung von Tags für Zuordnungen von Ereignisquellen

Themen

Y

N/A

Kafka-Thema-Name

Kann nur auf „Erstellen“ festgelegt werden

Erstellen von kontenübergreifenden Zuordnungen von Ereignisquellen

Sie können private Multi-VPC-Konnektivität verwenden, um eine Lambda-Funktion mit einem bereitgestellten MSK-Cluster in einem anderen AWS-Konto zu verbinden. Multi-VPC-Konnektivität verwendet AWS PrivateLink, wodurch der gesamte Datenverkehr im AWS-Netzwerk bleibt.

Anmerkung

Sie können keine kontenübergreifenden Zuordnungen von Ereignisquellen für Serverless-MSK-Cluster erstellen.

Um eine kontenübergreifende Zuordnung von Ereignisquellen zu erstellen, müssen Sie zunächst die Multi-VPC-Konnektivität für den MSK-Cluster konfigurieren. Verwenden Sie beim Erstellen der Zuordnung von Ereignisquellen den ARN der verwalteten VPC-Verbindung anstelle des Cluster-ARNs, wie in den folgenden Beispielen gezeigt. Die Operation CreateEventSourceMapping unterscheidet sich auch je nachdem, welchen Authentifizierungstyp der MSK-Cluster verwendet.

Beispiel – Erstellen Sie eine kontoübergreifende Zuordnung von Ereignisquellen für einen Cluster, der die IAM-Authentifizierung verwendet

Wenn der Cluster die rollenbasierte IAM-Authentifizierung verwendet, benötigen Sie kein SourceAccessConfiguration-Objekt. Beispiel:

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function
Beispiel – Erstellen Sie eine kontoübergreifende Zuordnung von Ereignisquellen für einen Cluster, der die SASL/SCRAM-Authentifizierung verwendet

Wenn der Cluster die SASL/SCRAM-Authentifizierung verwendet, müssen Sie ein SourceAccessConfiguration-Objekt einfügen, das SASL_SCRAM_512_AUTH angibt, und einen geheimen ARN von Secrets Manager.

Es gibt zwei Möglichkeiten, Secrets für kontenübergreifende Zuordnungen von Amazon-MSK-Ereignisquellen mit SASL/SCRAM-Authentifizierung zu verwenden:

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function \ --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'
Beispiel – Erstellen Sie eine kontoübergreifende Zuordnung von Ereignisquellen für einen Cluster, der die mTLS-Authentifizierung verwendet

Wenn der Cluster die mTLS-Authentifizierung verwendet, müssen Sie ein SourceAccessConfiguration-Objekt einfügen, das CLIENT_CERTIFICATE_TLS_AUTH angibt, und einen geheimen ARN von Secrets Manager. Das Secret kann im Clusterkonto oder im Lambda-Funktionskonto gespeichert werden.

aws lambda create-event-source-mapping \ --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \ --topics AWSKafkaTopic \ --starting-position LATEST \ --function-name my-kafka-function \ --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'

Verwenden eines Amazon MSK-Clusters als Ereignisquelle

Wenn Sie Ihren Apache Kafka-Cluster oder Amazon MSK als Auslöser für Ihre Lambda-Funktion hinzufügen, wird der Cluster als Ereignisquelle verwendet.

Lambda liest Ereignisdaten aus den Kafka-Themen, die Sie als Topics in einer CreateEventSourceMapping-Anforderung angeben, basierend auf der von Ihnen angegebenen StartingPosition. Nach erfolgreicher Verarbeitung wird Ihr Kafka-Thema Ihrem Kafka-Cluster zugeordnet.

Wenn Sie die StartingPosition als LATEST angeben, beginnt Lambda mit dem Lesen der neuesten Nachricht in jeder zum Thema gehörenden Partition. Da es nach der Auslöserkonfiguration eine gewisse Verzögerung geben kann, bevor Lambda mit dem Lesen der Nachrichten beginnt, liest Lambda keine Nachrichten, die innerhalb dieses Zeitraums erzeugt wurden.

Lambda liest Nachrichten sequentiell für jede Kafka-Themenpartition. Eine einzelne Lambda-Nutzlast kann Nachrichten von mehreren Partitionen enthalten. Wenn mehr Datensätze verfügbar sind, verarbeitet Lambda Datensätze weiter in Batches, basierend auf dem BatchSize-Wert, den Sie in einer CreateEventSourceMapping-Anforderung angeben, bis Ihre Funktion auf dem gleichen Stand wie das Thema ist.

Nachdem Lambda jeden Batch verarbeitet hat, werden die Offsets der Nachrichten in diesem Batch festgeschrieben. Wenn Ihre Funktion einen Fehler für eine der Nachrichten in einem Batch zurückgibt, wiederholt Lambda den gesamten Nachrichtenbatch, bis die Verarbeitung erfolgreich ist oder die Nachrichten ablaufen. Sie können Datensätze, bei denen alle Wiederholungsversuche fehlschlagen, zur späteren Verarbeitung an ein Ausfallziel senden.

Anmerkung

Während Lambda-Funktionen in der Regel ein maximales Timeout-Limit von 15 Minuten haben, unterstützen Ereignisquellenzuordnungen für Amazon MSK, selbstverwaltetes Apache Kafka, Amazon DocumentDB, Amazon MQ für ActiveMQ und RabbitMQ nur Funktionen mit einem maximalen Timeout-Limit von 14 Minuten. Diese Einschränkung stellt sicher, dass die Ereignisquellenzuordnung Funktionsfehler und Wiederholungsversuche ordnungsgemäß verarbeiten kann.

Startpositionen für Abfragen und Streams

Beachten Sie, dass die Stream-Abfrage bei der Erstellung und Aktualisierung der Zuordnung von Ereignisquellen letztendlich konsistent ist.

  • Bei der Erstellung der Zuordnung von Ereignisquellen kann es mehrere Minuten dauern, bis mit der Abfrage von Ereignissen aus dem Stream begonnen wird.

  • Bei Aktualisierungen der Zuordnung von Ereignisquellen kann es mehrere Minuten dauern, bis die Abfrage von Ereignissen aus dem Stream gestoppt und neu gestartet wird.

Dieses Verhalten bedeutet, dass, wenn Sie LATEST als Startposition für den Stream angeben, die Zuordnung von Ereignisquellen bei der Erstellung oder Aktualisierung möglicherweise Ereignisse übersieht. Um sicherzustellen, dass keine Ereignisse übersehen werden, geben Sie die Startposition des Streams als TRIM_HORIZON oder AT_TIMESTAMP an.

Amazon-CloudWatch-Metriken

Lambda gibt die Metrik OffsetLag aus, während Ihre Funktion Datensätze verarbeitet. Der Wert dieser Metrik ist die Differenz (der Versatz) zwischen dem letzten Datensatz, der ins Kafka-Ereignisquellen-Thema geschrieben wurde, und dem letzten Datensatz, den die Konsumentengruppe Ihrer Funktion verarbeitet hat. Sie können mit OffsetLag die Latenz zwischen dem Hinzufügen eines Datensatzes und der Verarbeitung des Datensatzes durch Ihre Konsumentengruppe abschätzen.

Ein zunehmender Trend in OffsetLag kann auf Probleme mit Pollern in der Konsumentengruppe Ihrer Funktion hinweisen. Weitere Informationen finden Sie unter Verwendung von CloudWatch-Metriken mit Lambda.

Skalierungsverhalten des Nachrichtendurchsatzes für Amazon MSK-Zuordnungen von Ereignisquellen

Sie können zwischen zwei Modi der Skalierung des Nachrichtendurchsatzes für Ihre Amazon MSK-Zuordnung von Ereignisquellen wählen:

Standardmodus (auf Abruf)

Wenn Sie anfänglich eine Amazon MSK-Ereignisquelle erstellen, weist Lambda eine Standardanzahl von Ereignis-Pollern zu, um alle Partitionen im Kafka-Thema zu verarbeiten. Lambda erhöht oder verringert automatisch die Anzahl der Ereignis-Poller je nach Nachrichtenlast.

In Intervallen von einer Minute wertet Lambda den Offset-Lag aller Partitionen des Themas aus. Wenn die Offset-Verzögerung zu hoch ist, empfängt die Partition Nachrichten schneller als Lambda sie verarbeiten kann. Falls erforderlich, fügt Lambda dem Thema Ereignis-Poller hinzu oder entfernt sie. Dieser Prozess der automatischen Skalierung durch Hinzufügen oder Entfernen von Ereignis-Pollern erfolgt innerhalb von drei Minuten nach der Auswertung.

Wenn Ihre Ziel-Lambda-Funktion gedrosselt ist, reduziert Lambda die Anzahl der Ereignis-Poller. Diese Aktion verringert die Arbeitslast der Funktion, indem sie die Anzahl der Nachrichten reduziert, die Ereignis-Poller abrufen und an die Funktion senden können.

Konfigurieren des bereitgestellten Modus

Für Workloads, bei denen Sie den Durchsatz Ihrer Zuordnung von Ereignisquellen optimieren müssen, können Sie den Bereitstellungsmodus verwenden. Im Bereitstellungsmodus definieren Sie Mindest- und Höchstgrenzen für die Anzahl der bereitgestellten Ereignis-Poller. Diese bereitgestellten Event-Poller sind auf Ihre Zuordnung von Ereignisquellen ausgerichtet und können unerwartete Nachrichtenspitzen durch reaktionsschnelle Autoskalierung bewältigen. Wir empfehlen die Verwendung des Bereitstellungsmodus für Kafka-Workloads, die strenge Leistungsanforderungen haben.

In Lambda ist ein Event-Poller eine Recheneinheit, die einen Durchsatz von bis zu 5 MBps verarbeiten kann. Nehmen wir als Referenz an, dass Ihre Ereignisquelle eine durchschnittliche Nutzlast von 1 MB erzeugt und die durchschnittliche Funktionsdauer 1 Sekunde beträgt. Wenn die Nutzdaten keiner Transformation (wie Filterung) unterzogen wird, kann ein einzelner Poller einen Durchsatz von 5 MB/s und 5 gleichzeitige Lambda-Aufrufe unterstützen. Die Verwendung des Bereitstellungsmodus verursacht zusätzliche Kosten. Kostenvoranschläge finden Sie unter AWS Lambda-Preise.

Anmerkung

Wenn Sie den Bereitstellungsmodus verwenden, müssen Sie keine AWS PrivateLink-VPC-Endpunkte erstellen oder die zugehörigen Berechtigungen als Teil Ihrer Netzwerkkonfiguration gewähren.

Im Bereitstellungsmodus liegt der Bereich der akzeptierten Werte für die Mindestanzahl der Ereignis-Poller (MinimumPollers) zwischen 1 und 200 (einschließlich). Der Bereich der akzeptierten Werte für die maximale Anzahl von Event-Pollern (MaximumPollers) liegt zwischen 1 und einschließlich 2.000. MaximumPollers muss größer als oder gleich MinimumPollers sein. Um eine geordnete Verarbeitung innerhalb der Partitionen zu gewährleisten, begrenzt Lambda das MaximumPollers auf die Anzahl der Partitionen im Thema.

Weitere Einzelheiten zur Auswahl geeigneter Werte für minimale und maximale Ereignis-Poller finden Sie unter Bewährte Verfahren und Überlegungen bei der Verwendung des Bereitstellungsmodus.

Sie können den Bereitstellungsmodus für Ihre Amazon MSK-Zuordnung von Ereignisquellen über die Konsole oder die Lambda-API konfigurieren.

So konfigurieren Sie den Modus bereitgestellter Kapazität für eine Zuordnung von Ereignisquellen von Amazon MSK (Konsole)
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie die Funktion mit der Amazon MSK-Zuordnung von Ereignisquellen aus, für die Sie den Bereitstellungsmodus konfigurieren möchten.

  3. Wählen Sie Konfiguration und anschließend Auslöser aus.

  4. Wählen Sie die Amazon MSK-Zuordnung von Ereignisquellen, für die Sie den Bereitstellungsmodus konfigurieren möchten und wählen Sie dann Bearbeiten.

  5. Wählen Sie unter Konfiguration der Zuordnung von Ereignisquellen die Option Bereitstellungsmodus konfigurieren aus.

    • Geben Sie für Minimum Event Pollers einen Wert zwischen 1 und 200 ein. Wenn Sie keinen Wert angeben, wählt Lambda einen Standardwert von 1.

    • Geben Sie für Maximum Event Pollers einen Wert zwischen 1 und 2000 ein. Dieser Wert muss größer oder gleich Ihrem Wert für Minimum Event Pollers sein. Wenn Sie keinen Wert angeben, wählt Lambda einen Standardwert von 200.

  6. Wählen Sie Save (Speichern) aus.

Sie können den Bereitstellungsmodus programmatisch konfigurieren, indem Sie das ProvisionedPollerConfig-Objekt in Ihrer EventSourceMappingConfiguration verwenden. Der folgende CLI-Befehl UpdateEventSourceMapping konfiguriert beispielsweise einen MinimumPollers-Wert von 5 und einen MaximumPollers-Wert von 100.

aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{"MinimumPollers": 5, "MaximumPollers": 100}'

Nachdem Sie den Bereitstellungsmodus konfiguriert haben, können Sie die Verwendung von Event-Pollern für Ihren Workload beobachten, indem Sie die ProvisionedPollers-Metrik überwachen. Weitere Informationen finden Sie unter Metriken zur Zuordnung von Ereignisquellen.

Um den Bereitstellungsmodus zu deaktivieren und zum Standardmodus (on-demand) zurückzukehren, können Sie den folgenden CLI-Befehl UpdateEventSourceMapping verwenden:

aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{}'

Bewährte Verfahren und Überlegungen bei der Verwendung des Bereitstellungsmodus

Die optimale Konfiguration der minimalen und maximalen Ereignispoller für Ihre Zuordnung von Ereignisquellen hängt von den Leistungsanforderungen Ihrer Anwendung ab. Wir empfehlen Ihnen, mit den standardmäßigen Minimum Event Pollers zu beginnen, um das Leistungsprofil zu erstellen. Passen Sie Ihre Konfiguration auf der Grundlage der beobachteten Nachrichtenverarbeitungsmuster und Ihres gewünschten Leistungsprofils an.

Erhöhen Sie bei Workloads mit starkem Datenverkehr und strengen Leistungsanforderungen die Mindestanzahl der Event-Poller, um plötzliche Nachrichtenfluten zu bewältigen. Um den Mindestbedarf an Event-Pollern zu ermitteln, berücksichtigen Sie die Nachrichten pro Sekunde und die durchschnittliche Größe der Nutzdaten Ihres Workloads und verwenden Sie die Durchsatzkapazität eines einzelnen Event-Pollers (bis zu 5 MBps) als Referenz.

Um eine geordnete Verarbeitung innerhalb einer Partition aufrechtzuerhalten, begrenzt Lambda die maximale Anzahl der Event-Poller auf die Anzahl der Partitionen im Thema. Darüber hinaus hängt die maximale Anzahl von Event-Pollern, auf die Ihr Zuordnung von Ereignisquellen skaliert werden kann, von den Gleichzeitigkeitseinstellungen der Funktion ab.

Wenn Sie den Bereitstellungsmodus aktivieren, aktualisieren Sie Ihre Netzwerkeinstellungen, um AWS PrivateLink VPC-Endpunkte und zugehörige Berechtigungen zu entfernen.