投稿日: Oct 4, 2022

Amazon S3 Object Lambda は、S3 GET リクエストに加えて、S3 HEAD および LIST API リクエストに対する独自コードの追加をサポートしました。S3 Object Lambda では、S3 GET リクエストによって返されるデータを変更し、行のフィルタリング、画像の動的なサイズ変更、機密データの編集などを行うことができます。さらに今回からは、S3 Object Lambda を使用することで、S3 LIST リクエストの出力を変更してバケット内にあるすべてのオブジェクトのカスタムビューを作成したり、S3 HEAD リクエストの出力を変更してオブジェクト名やサイズといったオブジェクトのメタデータを変更したりできます。このアップデートにより、S3 Object Lambda では AWS Lambda 関数を使用して、S3 GET、HEAD、LIST リクエストの出力を自動的に処理します。

これまで、S3 Object Lambda がサポートするのは S3 GET リクエストの出力処理でした。これは、データ形式の変換 (例: XML から JSON)、画像のサイズ変更および透かし、機密データの編集に最適です。HEAD および LIST リクエストなど、S3 Object Lambda に実行されるその他の S3 API コールは、標準の S3 API レスポンスを返していました。今回より、S3 Object Lambda を使用して、追加のオブジェクトメタデータを含む外部のインデックスにクエリを実行し、オブジェクト一覧を充実させることができます。また、オブジェクト一覧をフィルタリングおよびマスクして、特定のオブジェクトタグが付いたオブジェクトのみを含めることができます。オブジェクト一覧のすべてのオブジェクト名にファイル拡張子を追加することもできます。例えば、複数の個別データセットを持つ S3 バケットがある場合、S3 Object Lambda を使用し、リクエスタに応じて S3 LIST レスポンスをフィルタリングできます。S3 Object Lambda を使用すると、複雑なソフトウェアやインフラストラクチャを実行することなく、さまざまなアプリケーションのデータに関する複数のビューを簡単に提示できます。そのため、ストレージコストの節約になります。

AWS マネジメントコンソールで数回クリックするだけで、Lambda 関数を設定し、S3 Object Lambda アクセスポイントにアタッチすることができます。その時点から S3 は自動的に Lambda 関数を呼び出し、S3 Object Lambda アクセスポイントを介して取得されたデータを処理して、変換した結果をアプリケーションに返します。また、サポートする各 S3 API (GET、HEAD、LIST) 固有の Lambda 関数を記述することもできます。

S3 Object Lambda は、AWS マネジメントコンソール、AWS コマンドラインインターフェイス (CLI)、アプリケーションプログラミングインターフェイス (API)、または AWS Software Development Kit (SDK) クライアントから使用を開始できます。

S3 Object Lambda は、AWS アジアパシフィック (大阪) リージョンを除いて、AWS GovCloud (米国) リージョン、Sinnet が運営する AWS 中国 (北京) リージョン、NWCD が運営する AWS (寧夏) リージョンを含む、すべての AWS リージョンで利用できます。

料金情報については、Amazon S3 の料金ページをご覧ください。S3 Object Lambda の詳細については、製品の詳細ページ、および S3 ユーザーガイドにある開始方法のチュートリアルをご覧ください。