Lambdaでサイズを変更するよりも、ファイルをS3にアップロードするシステムの最良の設計は何ですか。
この問題の可能な解決策は、S3バケットイベントトリガーを使用して、新しいファイルがS3バケットにアップロードされたときにサイズ変更ラムダ関数をトリガーすることです。イベントを設定して、新しいオブジェクトが作成されたときではなく、新しいオブジェクトが作成された場合にのみ、ラムダ関数をトリガーできます。Lambda関数は、ファイルをサイズ変更して、元のファイルと同じキーを使用して同じS3バケットにサイズ付きバージョンを保存できますが、異なるファイル形式（たとえば、「_resized」をファイル名に追加します）。

さらに、Lambda関数にチェックを追加して、ファイルを1回だけ変更することを確認できます。たとえば、S3のオブジェクトのメタデータにメタデータを保存して、ファイルがサイズ変更されたかどうかを示すことができます。サイズを変更する前に、Lambda関数はこのメタデータをチェックし、まだサイズ変更されていない場合にのみファイルをサイズ変更できます。

これら2つの戦略を組み合わせることにより、S3バケットにアップロードされた新しいファイルごとにラムダ関数が1回だけトリガーされ、サイズ変更バージョンが元のファイルと同じキーを持つ同じS3バケットに保存されるようにします。