Konfiguration des Skalierungsverhaltens für SQS-Zuordnungen von Ereignisquellen - 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.

Konfiguration des Skalierungsverhaltens für SQS-Zuordnungen von Ereignisquellen

Sie können das Skalierungsverhalten Ihrer Amazon SQS SQS-Ereignisquellenzuordnungen entweder über die Einstellungen für maximale Parallelität oder durch die Aktivierung des Bereitstellungsmodus steuern. Diese Optionen schließen sich gegenseitig aus.

Standardmäßig skaliert Lambda Event-Poller automatisch auf der Grundlage des Nachrichtenvolumens. Wenn Sie den Bereitstellungsmodus aktivieren, weisen Sie eine Mindest- und Höchstzahl an dedizierten Abfrageressourcen zu, die bereit sind, die erwarteten Datenverkehrsmuster zu verarbeiten. Auf diese Weise können Sie die Leistung Ihrer Ereignisquellenzuordnung auf zwei Arten optimieren:

  • Standardmodus (Standard): Lambda verwaltet die Skalierung automatisch, wobei mit einer kleinen Anzahl von Pollern begonnen und je nach Arbeitslast nach oben oder unten skaliert wird.

  • Bereitgestellter Modus: Sie konfigurieren dedizierte Abfrageressourcen mit Mindest- und Höchstgrenzen, was eine dreimal schnellere Skalierung und eine bis zu 16-mal höhere Verarbeitungskapazität ermöglicht.

Bei Standardwarteschlangen verwendet Lambda Langabfrage, um eine Warteschlange so lange abzufragen, bis sie aktiv wird. Wenn Nachrichten verfügbar sind, beginnt Lambda mit der gleichzeitigen Verarbeitung von fünf Stapeln mit fünf gleichzeitigen Aufrufen Ihrer Funktion. Wenn Nachrichten weiterhin verfügbar sind, erhöht Lambda die Anzahl der Prozesse, die Batches lesen, um bis zu 300 gleichzeitige Aufrufe pro Minute. Die maximale Anzahl von Aufrufen, die eine Ereignisquellenzuordnung gleichzeitig verarbeiten kann, beträgt 1.250. Wenn der Verkehr gering ist, reduziert Lambda die Verarbeitung auf fünf gleichzeitige Aufrufe und kann auf bis zu zwei gleichzeitige Aufrufe optimiert werden, um die Amazon SQS SQS-Aufrufe und die entsprechenden Kosten zu reduzieren. Diese Optimierung ist jedoch nicht verfügbar, wenn Sie die Einstellung für maximale Gleichzeitigkeit aktivieren.

Bei FIFO-Warteschlangen sendet Lambda Nachrichten in der Reihenfolge, in der sie empfangen wurden, an Ihre Funktion. Wenn Sie eine Nachricht an eine FIFO-Warteschlange senden, geben Sie eine Nachrichtengruppen-ID an. Amazon SQS stellt sicher, dass Nachrichten in derselben Gruppe in der Reihenfolge an Lambda übermittelt werden. Wenn Lambda Ihre Nachrichten in Batches liest, kann jeder Batch Nachrichten aus mehr als einer Nachrichtengruppe enthalten, aber die Reihenfolge der Nachrichten bleibt erhalten. Wenn die Funktion einen Fehler zurückgibt, führt sie alle Wiederholungsversuche für die betroffenen Nachrichten aus, bevor Lambda weitere Nachrichten von derselben Gruppe erhält.

Im Bereitstellungsmodus kann jeder Event Poller bis zu 1 MB/sec Durchsatz, bis zu 10 gleichzeitige Aufrufe oder bis zu 10 Amazon SQS-Polling-API-Aufrufe pro Sekunde verarbeiten. Lambda skaliert die Anzahl der Event-Poller zwischen Ihrem konfigurierten Minimum und Maximum und fügt schnell bis zu 1.000 Parallelität pro Minute hinzu, um eine konsistente Verarbeitung Ihrer Amazon SQS SQS-Ereignisse mit niedriger Latenz zu gewährleisten. Die Verwendung des Bereitstellungsmodus verursacht zusätzliche Kosten. Eine detaillierte Preisgestaltung finden Sie unter Preise.AWS Lambda Jeder Event Poller verwendet lange Abfragen in Ihrer SQS-Warteschlange mit bis zu 10 Abfragen pro Sekunde, wodurch Kosten für SQS-API-Anfragen anfallen. Weitere Informationen finden Sie unter Amazon SQS SQS-Preise. Sie steuern Skalierung und Parallelität über diese minimalen und maximalen Event-Poller-Einstellungen, anstatt die Einstellung für maximale Parallelität zu verwenden, da diese Optionen nicht zusammen verwendet werden können.

Anmerkung

Sie können die Einstellung für maximale Parallelität und den Bereitstellungsmodus nicht gleichzeitig verwenden. Wenn der Bereitstellungsmodus aktiviert ist, steuern Sie die Skalierung und Parallelität Ihrer Amazon SQS SQS-Ereignisquellenzuordnung durch die minimale und maximale Anzahl von Event-Pollern.

Konfigurieren der maximalen Gleichzeitigkeit für Amazon-SQS-Ereignisquellen

Sie können die Einstellung für die maximale Gleichzeitigkeit verwenden, um das Skalierungsverhalten für Ihre SQS-Ereignisquellen zu steuern. Beachten Sie, dass die maximale Parallelität nicht verwendet werden kann, wenn der Bereitstellungsmodus aktiviert ist. Die Einstellung für die maximale Gleichzeitigkeit begrenzt die Anzahl der gleichzeitigen Instances der Funktion, die eine Amazon-SQS-Ereignisquelle aufrufen kann. Die maximale Gleichzeitigkeit ist eine Einstellung auf der Ebene der Ereignisquelle. Wenn Sie einer Funktion mehrere Amazon-SQS-Ereignisquellen zugeordnet haben, kann jede Ereignisquelle eine separate Einstellung für die maximale Gleichzeitigkeit haben. Sie können die maximale Parallelität verwenden, um zu verhindern, dass eine Warteschlange die gesamte reservierte Gleichzeitigkeit der Funktion oder den Rest des Gleichzeitigkeitskontingents des Kontos verwendet. Für die Konfiguration der maximalen Gleichzeitigkeit auf einer Amazon-SQS-Ereignisquelle fallen keine Gebühren an.

Wichtig ist, dass maximale und reservierte Parallelität zwei unabhängige Einstellungen sind. Setzen Sie die maximale Parallelität nicht höher als die reservierte Parallelität der Funktion. Wenn Sie maximale Parallelität konfigurieren, stellen Sie sicher, dass die reservierte Parallelität Ihrer Funktion größer oder gleich der gesamten maximalen Parallelität für alle Amazon SQS-Ereignisquellen auf der Funktion ist. Andernfalls könnte Lambda Ihre Nachrichten drosseln.

Wenn die Gleichzeitigkeitsquote Ihres Kontos auf den Standardwert von 1 000 eingestellt ist, kann eine Amazon-SQS-Zuordnung von Ereignisquellen skaliert werden, um Funktionsinstanzen bis zu diesem Wert aufzurufen, es sei denn, Sie geben eine maximale Gleichzeitigkeit an.

Wenn Sie eine Erhöhung der standardmäßigen Gleichzeitigkeitsquote Ihres Kontos erhalten, kann Lambda möglicherweise keine gleichzeitigen Funktionsinstanzen bis zur neuen Kontingente aufrufen. Standardmäßig kann Lambda so skaliert werden, dass bis zu 1.250 gleichzeitige Funktionsinstanzen für eine Amazon-SQS-Zuordnung von Ereignisquellen aufgerufen werden. Wenn dies für Ihren Anwendungsfall nicht ausreicht, wenden Sie sich an den AWS Support, um eine Erhöhung der Parallelität der Amazon SQS SQS-Ereignisquellenzuordnungen für Ihr Konto zu besprechen.

Anmerkung

Bei FIFO-Warteschlangen werden gleichzeitige Aufrufe entweder durch die Anzahl der Nachrichtengruppen IDs (messageGroupId) oder durch die Einstellung für maximale Parallelität begrenzt — je nachdem, welcher Wert niedriger ist. Wenn Sie beispielsweise über sechs Nachrichtengruppen verfügen IDs und die maximale Parallelität auf 10 festgelegt ist, kann Ihre Funktion maximal sechs gleichzeitige Aufrufe haben.

Sie können die maximale Gleichzeitigkeit für neue und vorhandene Zuordnung von Ereignisquellen in Amazon SQS konfigurieren.

Konfigurieren der maximalen Gleichzeitigkeit mithilfe der Lambda-Konsole
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie den Namen einer Funktion aus.

  3. Wählen Sie unter Function overview (Funktionsübersicht) die Option SQS aus. Dadurch wird die Registerkarte Configuration (Konfiguration) geöffnet.

  4. Wählen Sie den Amazon-SQS-Auslöser aus und klicken Sie auf Edit (Bearbeiten).

  5. Geben Sie für Maximum concurrency (Maximale Gleichzeitigkeit) eine Zahl zwischen 2 und 1 000 ein. Um die maximale Gleichzeitigkeit zu deaktivieren, lassen Sie das Feld leer.

  6. Wählen Sie Speichern.

Konfigurieren Sie die maximale Parallelität mit der () AWS Command Line InterfaceAWS CLI

Verwenden Sie den Befehl update-event-source-mapping mit der Option --scaling-config . Beispiel:

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config '{"MaximumConcurrency":5}'

Um die maximale Gleichzeitigkeit zu deaktivieren, geben Sie einen leeren Wert für --scaling-config ein:

aws lambda update-event-source-mapping \ --uuid "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE" \ --scaling-config "{}"
Konfigurieren der maximalen Gleichzeitigkeit mithilfe der Lambda-API

Verwenden Sie die UpdateEventSourceMappingAktion CreateEventSourceMappingoder mit einem ScalingConfigObjekt.