1

Szenario - Es gibt einen Master-Lambda, der Arbeit aufspaltet und sie an mehrere andere Lambdas (Arbeiter) verteilt. Das erste Lambda iteriert und ruft die anderen Lambdas asynchron aufLambda, der ein anderes Lambda aufruft und Parallelschwelle von 1000 trifft

Wenn die Anzahl der lambdas, die erzeugt werden, mehr als 1000 ist, wird es fehlschlagen?

Sollte es einen SNS zwischen den beiden Lambdas geben ... so dass der SNS es erneut versuchen wird?

Oder ein komplizierterer Ansatz, die Nachrichten in eine Warteschlange zu stellen und dann die X-Nummer der Worker-Lambdas zu senden, um mit der Abfrage der Warteschlange zu beginnen?

Gibt es einen besseren Weg?

Antwort

0

Ja, es sollte eine Art Entkoppelung zwischen Hersteller und Verbraucher geben. Der naheliegendste Weg besteht darin, den Producer zu veranlassen, 1000 Nachrichten zu einem SNS-Thema zu erstellen und AWS zu ermöglichen, wie viele Konsumenten benötigt werden (vielleicht kann es Konsumentenlambdas wiederverwenden). Andere Möglichkeiten umfassen das Auslösen von in DynamoDB eingefügten Datensätzen.

Wenn Sie die Zuhörer wollen Nachrichten von einem SQS-Warteschlange ziehen Sie benötigen sie selbst auslösen, die Sie mit Cloudwatch (maximal 1 Trigger pro Minute) tun

0

Wenn die Anzahl der Lambda-Ausdrücke, die Laichen sind mehr als 1000 Qn: Wird es scheitern?

Ja, es wird fehlschlagen. Aber Sie können die Standardlimits (1000) auf n-Nummern basierend auf Region erhöhen, indem Sie AWS Customer Support anfordern.

http://docs.aws.amazon.com/lambda/latest/dg/limits.html

http://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html

bin ich über Ihre genauen Anforderungen nicht sicher. Basierend auf Ihren Anforderungen müssen Sie stellen Sie sicher, dass 1000 lambdas in Ihrem Design Laichen erforderlich ist.

Meine Vorschläge sind unter

Vorschlag 1: -

AWS Schritt Funktionen

von AWS Schritt Funktionen Sie Ihr Kind Lambda vom Master mit Zustandsmaschine Sprache aufrufen kann. Basierend auf dem Aufruf Ihres Master-Lambda (zB: Cloudwatch-Regeln, Trigger). Weitere Informationen goto: -

https://aws.amazon.com/step-functions/

https://states-language.net/spec.html

Vorschlag 2: -

AWS ECS Container

Vom Master Lambda Senden von Nachrichten an SQS. Starten Sie Ihr untergeordnetes Programm als ECS Container Service. In Programm können Sie Ihre SQS-Nachrichten konsumieren und Ihre Geschäftslogik lösen.

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html