Wie bedient AWS Lambda mehrere Anfragen?

Lesezeit: 4 Minuten

Benutzeravatar von Sandeep Kumar Jakkaraju
Sandeep Kumar Jakkaraju

Wie bedient AWS Lambda mehrere Anfragen? Ich möchte wissen, ob es sich hier auch um ein Multi-Thread-Modell handelt?

Wenn ich ein Lambda von einem API-Gateway aus aufrufe. Und es gibt 1000 Anfragen in 10 Sekunden an die API. Wie viele Container werden erstellt und wie viele Threads.

  • Was ist Ihr konkreter Anwendungsfall? Deine Frage ist zu vage.

    – Arunav Sanyal

    20. August 2017 um 10:03 Uhr

  • Auch die Einheit der Parallelität ist für verschiedene Anwendungsfälle unterschiedlich (für streambasierte Listener wie Kinesis ist es die Anzahl der Shards und für nicht streambasierte basierend auf Ereignissen – Anzahl der erstellten DDB-Elemente/S3-Dokumente gepusht/durchgeführte AWS-API-Aufrufe. docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html.

    – Arunav Sanyal

    20. August 2017 um 10:10 Uhr

  • Wenn ich ein Lambda von einem API-Gateway aus aufrufe. Und es gibt 1000 Anfragen in 10 Sekunden an die API. Wie viele Container werden erstellt und wie viele Threads.

    – Sandeep Kumar Jakkaraju

    20. August 2017 um 11:50 Uhr

  • 1000 Container bei Standard IIRC gleichzeitig und jede Ausführung ist Single-Threaded. Die Parallelität befindet sich auf einer anderen Abstraktionsebene auf Containerebene (denken Sie an verschiedene Hosts oder Docker-Container, die auf impl basieren) anstelle von Threads auf Betriebssystemebene. Auf der Clientebene sollte dieses Implementierungsdetail keine Bedeutung haben. Wenn Sie Parallelität auf jeder Aufrufebene benötigen, müssten Sie Ihre Anwendung natürlich auf diese Weise schreiben (z. B. die Node-js-Laufzeit würde es Ihnen ermöglichen, eine Menge asynchrones Zeug zu erzeugen).

    – Arunav Sanyal

    20. August 2017 um 22:58 Uhr

  • „Hinweis: Lambda kann standardmäßig bis zu 1000 (kombinierte Gesamtzahl von Prozessen und Threads) gleichzeitige Ausführungen unterstützen.“ Das ist nicht richtig. Prozesse und Threads spielen hier keine Rolle. 1000 gleichzeitige Aufrufe bedeutet 1000 Behälter. Jeder Aufruf ist völlig unabhängig von allen anderen. Alles, was Sie in Ihrem Code mit Prozessen und Threads tun, gilt für eins Aufruf – nicht über sie hinweg.

    – Michael – sqlbot

    20. August 2017 um 13:51 Uhr

  • @Michael Danke für den Beitrag. Ich hatte auch den gleichen Sinn, aber als ich die Dokumentation weiter las, fand ich die Informationen in aws doc. docs.aws.amazon.com/lambda/latest/dg/limits.html Ist es ein Tippfehler oder meine Interpretation ist falsch?

    – Ashan

    20. August 2017 um 17:19 Uhr


  • Sie haben in Ihrer Interpretation zwei voneinander unabhängige Konzepte kombiniert. Beachten Sie den Titel der Tabelle: AWS Lambda-Ressourcenlimits pro Aufruf. Dies ist die Grenze für Threads und Prozesse innerhalb eines Lambda-Aufruf. Gleichzeitige Aufrufe interagieren nicht miteinander. Jeder von ihnen kann unabhängig voneinander bis zu 1024 Threads/Prozesse erstellen (selten etwas, was Sie brauchen würden), jeder von ihnen hat 512 MB temporären Speicherplatz, jeder von ihnen hat die Menge an Speicher, die Sie bereitgestellt haben, und sie konkurrieren nicht mit jedem andere für CPU-Zyklen. Das Limit für gleichzeitige Aufrufe ist nur zufällig eine ähnliche Zahl.

    – Michael – sqlbot

    20. August 2017 um 18:03 Uhr


  • Danke @Michael Stimme deinen Punkten zu und habe die Antwort für zukünftige Referenzen entsprechend aktualisiert.

    – Ashan

    20. August 2017 um 18:18 Uhr

  • Eine weitere Nuance ist die „Burst Concurrency Quota“ – abhängig von der AWS-Region, in der Sie sich befinden, ist die Anzahl der bereitgestellten neuen Instanzen begrenzt. Bis zu diesem Kontingent stellt AWS sofort neue Instanzen bereit, aber jenseits dieses Kontingents werden die neuen Instanzen mit 500 Instanzen pro Minute erstellt, wobei überschüssige Anfragen 429 Ausnahmen erhalten. docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html

    – STW

    18. Januar 2022 um 18:01 Uhr

1444400cookie-checkWie bedient AWS Lambda mehrere Anfragen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy