Was ist das beste Design eines Systems, das eine Datei auf S3 hochlädt, als die Größe mit Lambda zu ändern, aber mit dem gleichen Schlüssel wie hochgeladen, ohne die Größe Lambda-Funktion zweimal oder mehr auszulösen?
user
Eine mögliche Lösung für dieses Problem ist, einen S3 Bucket Event Trigger zu verwenden, um die Größe der Lambda-Funktion auszulösen, wenn eine neue Datei in den S3 Bucket hochgeladen wird. Sie können das Ereignis so einstellen, dass die Lambda-Funktion ausgelöst wird, wenn ein neues Objekt erstellt wird, nicht wenn es geändert wird. Die Lambda-Funktion kann dann die Größe der Datei ändern und die geänderte Version in den gleichen S3 Bucket speichern, indem sie den gleichen Schlüssel wie die ursprüngliche Datei verwendet, aber mit einem anderen Dateiformat (z.B. Hinzufügen von "_size" zum Dateinamen). Zusätzlich können Sie eine Überprüfung der Lambda-Funktion hinzufügen, um sicherzustellen, dass die Datei nur einmal geändert wird. Beispielsweise können Sie Metadaten in den Metadaten des Objekts in S3 speichern, um anzuzeigen, ob die Datei geändert wurde oder nicht. Bevor die Größe geändert wird, kann die Lambda-Funktion diese Metadaten überprüfen und nur dann die Größe der Datei ändern, wenn sie nicht bereits geändert wurde. Durch die Kombination dieser beiden Strategien können Sie sicherstellen, dass die Lambda-Funktion nur einmal für jede neue Datei ausgelöst wird, die in den S3 Bucket hochgeladen wird und dass die neue Version in der neuen Version gespeichert ist.
assistant