0

Wir experimentieren mit einer neuen serverlosen Lösung, bei der ein externer Provider in DynamoDB schreibt, DynamoDB Stream auf ein neues Schreibereignis reagiert und die AWS-Lambda-Funktion auslöst, die Änderungen auf den Weg bringt?Wie "Real-Time" DynamoDB-Stream ist?

Bis jetzt funktioniert es gut, jedoch stellen wir manchmal fest, dass Daten verzögert werden, z. von Lambda würden für einige Minuten keine Updates kommen.

Nachdem viele DynamoDB Stream-Dokumentation durchlaufen wurde, ist der einzige Begriff, den sie verwenden, "in Echtzeit Stream-Datensatz" aber was ist im Allgemeinen "in der Nähe von Echtzeit"? Was sind die möglichen Verzögerungen, die wir hier sehen?

+0

* keine Updates würden von Lambda kommen * wäre nicht unbedingt das gleiche wie die Daten verzögert werden. Die Lambda-Funktion könnte die Ursache für die Verzögerung sein. Haben Sie auch verifiziert, dass die Funktion zuvor nicht aufgerufen wurde und möglicherweise Fehler verursacht hat und die Daten, die Sie erhalten, das Ergebnis von Lambda-Versuchen sind? –

+0

@ Michael-sqlbot ist nicht Lambda Staatenlos? Wie ich verstanden habe, sollte die neue Ausführung der Lambda-Funktion keine Beziehung zum vorherigen Lambda-Lauf haben. – inside

+0

Das stimmt nicht ganz. Ihr Code sollte auf diese Weise entworfen werden, und jeder Container behandelt nur einen gleichzeitigen Aufruf, aber die Container werden oft wiederverwendet ... so kann Ihre Funktion bei nachfolgenden Aufrufen fehlschlagen oder stehenbleiben, wenn Designfehler von etwas ausgelöst werden, das Sie nicht bereinigt haben . Fehler werden auch nach einer Verzögerung erneut versucht. Lesen Sie Ihre Cloudwatch-Protokolle und sehen Sie, ob Sie möglicherweise problematische Anzeichen für Probleme sehen. –

Antwort

0

In den meisten Fällen werden Lambda-Funktionen innerhalb einer halben Sekunde ausgelöst, nachdem Sie ein Update für ein kleines Element in einer DynamoDB-Tabelle mit Streams vorgenommen haben. Aber Ereignisquellenänderungen, Aktualisierungen der Lambda-Funktion, Ändern der Lambda-Ausführungsrolle usw. können zusätzliche Latenz verursachen, wenn die Lambda-Funktion zum ersten Mal ausgeführt wird.