Ich suche nach einer Möglichkeit, Lambda-Trigger auf einer DynamoDB vorübergehend zu deaktivieren. Ich möchte in der Lage sein, manuelle Aktualisierungen auf eine Tabelle anzuwenden (z. B. das Importieren von Daten aus einer S3-Sicherung), ohne dass der Lambda-Code ausgelöst wird. Ich habe die Deaktivierungstaste neben dem Trigger in den Lambda-Funktionen "Trigger" -Register versucht. Ich habe auch versucht, den gesamten Stream für die Tabelle zu deaktivieren. In beiden Fällen werden bei der Reaktivierung des Triggers/Streams alle Triggerereignisse (die passierten, während sie deaktiviert wurden) ausgeführt.DynamoDB vorübergehend deaktivieren Lambda Triggers/Stream
Wie kann ich verhindern, dass dieser Code ausgelöst wird?
Vielen Dank!
Wenn Sie den Trigger zurück zur Lambda-Funktion hinzufügen, worauf legen Sie die Startposition fest? Es muss in diesem Fall AKTUELL sein. Wenn TRIM_HORIZON gesetzt ist, wird mit dem ältesten Datensatz im Stream begonnen (Stream-Datensätze werden 24 Stunden lang gespeichert). –
Ok, ich habe mich gefragt, ob das der Schlüssel zu meinem Problem wäre. Aber ich bin immer noch etwas unsicher. Ich kann die Startposition beim Erstellen eines Triggers über die Lambda-Konsole festlegen. Also, wenn ich den Auslöser auf LATEST zu starten, wird dies tun, nachdem deaktiviert und wieder manuell aktiviert. Aber wird es auch beeinflussen, wie es im Allgemeinen funktioniert, wenn es einen Fehler oder einen Engpass gibt? Ist es immer noch gewährleistet, dass alle Ereignisse vom Trigger behandelt werden? Ich bekomme diese Einstellung nicht ganz. Nicht zu vergessen: Danke schon, das war eine wichtige Antwort für mich! – weka1
Die Einstellung der Startposition wirkt sich NUR auf die Position aus, von der aus der Stream gestartet wird. Ansonsten beeinflusst es das Verhalten des Streams überhaupt nicht. Streams werden nicht fortgesetzt, bis die Lambda-Funktion erfolgreich zurückkehrt. Wenn also Fehler auftreten, wird die Funktion erneut mit den gleichen Ereignisdaten aufgerufen. Du musst hier vorsichtig sein, denn wenn es ein Fehler in deinem Code ist (d. H. Kein API-Aufruffehler), wirst du an diesem Punkt hängen bleiben. Das ist jedoch ein Problem, das unabhängig von der Startposition der Streams beachtet werden muss. –