2016-07-18 18 views
0

Gemäß der docs "beschränkt AWS Lambda standardmäßig die Gesamtzahl der gleichzeitigen Ausführungen über alle Funktionen innerhalb einer bestimmten Region auf 100."AWS Lambda für mobile App und Throttling

Betrachten Sie eine einfache mobile App mit Lambda für Back-End-Verarbeitung. Wenn ich die Einschränkung richtig verstehe, können nicht mehr als 100 gleichzeitige Ausführungen auf einmal stattfinden, was bedeutet, dass es, wenn ich 100 Benutzer gleichzeitig Lambda-Funktionen aufrufen werde, Drosselungsbeschränkungen gibt?

Ich verstehe, ich kann Kundendienst anrufen und diese Grenze erhöhen, aber ist dies die richtige Interpretation der Einschränkung? Wie soll das auf 1.000, 10.000 oder 1.000.000 Benutzer skalieren?

Antwort

0

Aktualisierung: Da diese Antwort geschrieben wurde, wurde das Standardlimit für gleichzeitige Ausführungen um den Faktor 10 von 100 auf 1.000 erhöht. Das Limit ist pro Konto, pro Region.

standardmäßig begrenzt AWS Lambda die insgesamt gleichzeitigen Ausführungen über alle Funktionen innerhalb einer bestimmten Region 1000

http://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html#concurrent-execution-safety-limit (Link besucht 2017.05.02)

jedoch, wie zuvor, Dies ist eine Schutzkontrolle, und die AWS-Unterstützung erhöht das Limit, wenn Sie sie mit Ihrem Anwendungsfall präsentieren und dieser genehmigt wird. Es gibt keine Gebühr für die Erstellung dieser Art von Anfrage in der support center und es gibt keine Gebühr für die Erhöhung Ihrer Grenzen.

Die Lambda-Plattform auch Mai ermöglichen Exkursionen über Ihr Limit hinaus, wenn es die Aktion für angemessen hält. Die Logik hinter einer solchen Aktion ist nicht dokumentiert, aber eine vernünftige Annahme wäre, dass der Verkehr tatsächlich von Nachfrage/Last getrieben zu sein scheint und nicht das Ergebnis einer Runaway-Loopback-Bedingung, bei der Lambda-Funktionen direkt oder indirekt mehr Lambda-Funktionen aufrufen .

Ein lustiges Beispiel für eine Runaway-Bedingung könnte etwa so aussehen: Ein Bucket hat ein create-Objektereignis, das eine Lambda-Funktion aufruft, die zwei Objekte im selben Bucket erzeugt ... die dieselbe Lambda-Funktion viermal aufruft. Erstellen von 8 Objekten ... achtmaliges Aufrufen der Lambda-Funktion, Erstellen von 16 Objekten.

Um die 15. Iteration, die nur eine Frage von Sekunden erfordern würde, würden Sie theoretisch 32.768 gleichzeitige Aufrufe versuchen, 65.536 Objekte zu erstellen. Der Verkehr in der realen Welt steigt in den meisten Fällen viel langsamer.


, wenn ich in der gleichen Zeit 100 Benutzer aufrufen Lambda-Funktionen haben, wird es Drosselung Einschränkungen

Ja, das ist die Idee hinter „concurrent.“

Wie wird diese

Niemand maßstabs soll gesagt, es wäre an der Grenze statt.

Dieser Grenzwert ist eine Schutzsteuerung, keine Widerspiegelung einer tatsächlichen Begrenzung der Plattform.

Aber auch, wie wahrscheinlich ist es, dass Ihre Benutzer gleichzeitige Anfragen an Lambda machen? Unter der Annahme, dass Ihre Lambda-Funktion für 100ms ausgeführt wird, könnten Sie mit etwa 750 Aufrufen pro Sekunde innerhalb einer Grenze von 100 gleichzeitigen Aufrufen mit einer Blockierungswahrscheinlichkeit von nur 0,1% umgehen.

(Das ist eine Erlang B Berechnung, die hier anwendbar scheint. Ohne zufällige Ankünfte wäre natürlich die "reine" Kapazität 100 × 10 = 1000 Aufrufe/Sek für eine 100ms Funktion).

+0

Scheint von 100 auf 1.000 erhöht worden zu sein. –

+0

@GonzaloGallotti danke, dass du mich darauf aufmerksam gemacht hast. –