Ich bin neu in AWS und arbeite an einer Serverless-Anwendung, bei der eine Funktion eine große Datenmenge lesen muss. Niemals wird ein einzelnes Element aus der Tabelle gelesen, aber alle Elemente werden routinemäßig durch eine Zeitplanfunktion aktualisiert.Empfohlene Methode zum Lesen einer ganzen Tabelle (Lambda, DynamoDB/S3)
Was ist Ihre Empfehlung für den effizientesten Umgang mit diesem Szenario? Meine aktuelle Implementierung verwendet den scan
-Vorgang in einer DynamoDB-Tabelle, aber mit meiner begrenzten Erfahrung bin ich nicht sicher, ob dies in der Produktion performant sein wird. Wäre es besser, die Daten vielleicht als eine JSON-Datei auf S3 zu speichern? Und wenn ja, wäre es so einfach, die Werte mit einer Zeitplanfunktion zu aktualisieren?
Danke für Ihre Zeit.
PS: eine Vorstellung von der Größe der Datenbank zu geben, wird es ~ 1500 Elemente sein, die jeweils eine Reihe von bis zu ~ 100 Saiten
Ah das ist eine gute Idee, beide auf diese Weise zu erhalten! Vielen Dank! In Bezug auf die Bereitstellung aus dem Speicher gibt es eine besondere Methode, um sicherzustellen, dass dies geschieht? Ich dachte, ich müsste jedes Mal von S3 "holen", hat Lambda eine Art Caching-System? – sherlock
Bearbeitete die Antwort, um Kaltstartlesevorgänge unterzubringen. – Kannaiyan
Danke für Ihre Klarstellung! Die Bereitstellung aus dem Speicher wäre ideal, da die Quelldaten zuverlässig nur einmal am Tag aktualisiert werden müssen. Ich kann jedoch keine Dokumentation finden, die erklärt, wie der Lambda-Speicher funktioniert. Wenn ich S3.getObject() verwende, speichert dies automatisch die Daten im Speicher? Wenn nicht, wäre Ihre Hilfe, um zu verstehen, wie Lambda Speicher funktioniert, wirklich geschätzt. – sherlock