Konfigurieren reservierter Gleichzeitigkeit
In Lambda beschreibt die Gleichzeitigkeit die Anzahl der Anforderungen, die Ihre Funktion gleichzeitig bearbeitet. Es gibt zwei Arten von Gleichzeitigkeitskontrollen:
-
Reservierte Gleichzeitigkeit – Reservierte Gleichzeitigkeit ist die maximale Anzahl der gleichzeitigen Instances, die Sie Ihrer Funktion zuweisen möchten. Wenn für eine Funktion Gleichzeitigkeit reserviert ist, kann keine andere Funktion diese Gleichzeitigkeit nutzen. Für die Konfiguration reservierter Gleichzeitigkeit für eine Funktion wird keine Gebühr erhoben.
-
Bereitgestellte Gleichzeitigkeit – Die bereitgestellte Gleichzeitigkeit beschreibt die Anzahl der vorinitialisierten Ausführungsumgebungen, die Sie Ihrer Funktion zuweisen möchten. Diese Ausführungsumgebungen sind darauf vorbereitet, sofort auf eingehende Funktionsanforderungen zu reagieren. Die Konfiguration von bereitgestellter Gleichzeitigkeit verursacht Gebühren für Ihre AWS-Konto.
In diesem Thema wird beschrieben, wie Sie reservierte Gleichzeitigkeit verwalten und konfigurieren. Eine konzeptionelle Übersicht über diese beiden Arten von Gleichzeitigkeitssteuerungen finden Sie unter Reservierte Gleichzeitigkeit und bereitgestellte Gleichzeitigkeit. Weitere Informationen zum Konfigurieren der bereitgestellten Gleichzeitigkeit finden Sie unter Konfigurieren von Provisioned Concurrency.
Anmerkung
Lambda-Funktionen, die von einer Amazon MQ-Zuordnung von Ereignisquellen aufgerufen werden, haben eine standardmäßige maximale Parallelität. Für Apache Active MQ ist die maximale Anzahl der gleichzeitigen Instances 5. Für Rabbit MQ ist die maximale Anzahl der gleichzeitigen Instances 1. Wenn Sie für Ihre Funktion eine reservierte oder bereitgestellte Parallelität festlegen, werden diese Grenzwerte nicht geändert. Um eine Erhöhung der standardmäßigen maximalen Parallelität bei der Verwendung von Amazon MQ zu beantragen, wenden Sie sich an. AWS Support
Abschnitte
Konfigurieren reservierter Gleichzeitigkeit
Sie können die Einstellungen der reservierten Gleichzeitigkeit für eine Funktion in der Lambda-Konsole oder mit der Lambda-API konfigurieren.
Reservieren von Gleichzeitigkeit für eine Funktion (Konsole)
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie die Funktion aus, für sie Sie Gleichzeitigkeit reservieren möchten.
-
Wählen Sie Konfiguration und anschließend Gleichzeitigkeit aus.
-
Wählen Sie unter Concurrency (Parallelität) die Option Edit (Bearbeiten).
-
Wählen Sie Reserve concurrency (Parallelität reservieren). Geben Sie die Menge an Gleichzeitigkeit an, die für die Funktion reserviert werden soll.
-
Wählen Sie Save aus.
Sie können bis zum Wert von Nicht reservierte Kontonebenläufigkeit minus 100 reservieren. Die verbleibenden 100 Gleichzeitigkeitseinheiten sind für Funktionen bestimmt, die keine reservierte Gleichzeitigkeit verwenden. Wenn für Ihr Konto beispielsweise eine Gleichzeitigkeitsbeschränkung von 1 000 gilt, können Sie nicht alle 1 000 Gleichzeitigkeitseinheiten für eine einzelne Funktion reservieren.

Das Reservieren von Gleichzeitigkeit für eine Funktion hat Auswirkungen auf den Pool, der für andere Funktionen verfügbar ist. Wenn Sie beispielsweise 100 Gleichzeitigkeitseinheiten für function-a
reservieren, müssen sich andere Funktionen in Ihrem Konto die verbleibenden 900 Gleichzeitigkeitseinheiten teilen, auch wenn function-a
nicht alle 100 reservierten Gleichzeitigkeitseinheiten verwendet.
Um eine Funktion absichtlich zu drosseln, setzen Sie die reservierte Gleichzeitigkeit dafür auf 0. Dadurch kann die Funktion keine Ereignisse mehr verarbeiten, bis Sie die Beschränkung aufheben.
Verwenden Sie für die Konfiguration von reservierter Gleichzeitigkeit mithilfe der Lambda-API die folgenden API-Vorgänge:
Um beispielsweise reservierte Gleichzeitigkeit mit der AWS Command Line Interface (CLI) zu konfigurieren, verwenden Sie den put-function-concurrency
-Befehl. Der folgende Befehl reserviert 100 Gleichzeitigkeitseinheiten für eine Funktion namens my-function
:
aws lambda put-function-concurrency --function-name my-function \ --reserved-concurrent-executions 100
Die Ausgabe sollte ungefähr wie folgt aussehen:
{ "ReservedConcurrentExecutions": 100 }
Konfigurieren der Gleichzeitigkeit mit der Lambda-API
Wenn Ihre Funktion gerade Datenverkehr verarbeitet, können Sie ihre Gleichzeitigkeitsmetriken ganz einfach mit CloudWatch-Metriken anzeigen. Insbesondere zeigt Ihnen die ConcurrentExecutions
-Metrik die Anzahl der gleichzeitigen Aufrufe für jede Funktion in Ihrem Konto.

Aus dem vorstehenden Diagramm geht hervor, dass diese Funktion jederzeit im Durchschnitt 5 bis 10 gleichzeitige Anforderungen verarbeitet und an einem typischen Tag Spitzenwerte von 20 Anforderungen erreicht. Angenommen, Ihr Konto enthält viele andere Funktionen. Wenn diese Funktion für Ihre Anwendung von entscheidender Bedeutung ist und Sie keine Anforderungen abbrechen möchten, verwenden Sie mindestens 20 als Einstellung für die reservierte Gleichzeitigkeit.
Denken Sie alternativ daran, dass Sie die Gleichzeitigkeit auch mit der folgenden Formel berechnen können:
Concurrency = (average requests per second) * (average request duration in seconds)
Wenn Sie die durchschnittlichen Anforderungen pro Sekunde mit der durchschnittlichen Anforderungsdauer in Sekunden multiplizieren, erhalten Sie eine grobe Schätzung, wie viel Gleichzeitigkeit Sie reservieren müssen. Sie können die durchschnittlichen Anfragen pro Sekunde anhand der Invocation
-Metrik und die durchschnittliche Anfragedauer in Sekunden anhand der Duration
-Metrik schätzen. Weitere Details finden Sie unter Arbeiten mit Lambda-Funktionsmetriken.