S3 Object Lambda を使用したオブジェクトの変換

Amazon S3 Object Lambda を使用すると、Amazon S3 GETLISTHEAD リクエストに独自のコードを追加して、データがアプリケーションに返されるときにそのデータを変更および処理できます。カスタムコードを使用すると、S3 GET リクエストによって返されるデータを変更し、行のフィルタリング、画像の動的なサイズ変更と透かし、機密データの編集などを行うことができます。また、S3 Object Lambda を使用して、バケット内のすべてのオブジェクトのカスタムビューを作成する S3 LIST リクエストの出力や、オブジェクト名やサイズなどのオブジェクトメタデータを変更する S3 HEAD リクエストの出力を変更することもできます。S3 Object Lambda を Amazon CloudFront ディストリビューションのオリジンとして使用して、画像の自動サイズ変更、古い形式 (JPEG から WebP など) のトランスコーディング、メタデータの削除など、エンドユーザー向けにデータを調整できます。詳細については、AWS ブログの「Use Amazon S3 Object Lambda with Amazon CloudFront」(Amazon S3 Object Lambda を Amazon CloudFront で使用する) を参照してください。AWS Lambda 関数を利用しているため、コードは AWS によって完全に管理されたインフラストラクチャ上で実行されます。S3 Object Lambda を使用すると、データの派生コピーを作成して保存したり、プロキシを実行したりする必要が少なくなり、アプリケーションに変更を加える必要もなくなります。

S3 オブジェクト Lambda の仕組み

S3 Object Lambda は AWS Lambda 関数を使用して、標準の S3 GETLISTHEAD リクエストの出力を自動的に処理します。AWS Lambda は、基盤となるコンピューティングリソースの管理を必要とせずに、顧客定義のコードを実行するサーバーレスコンピューティングサービスです。データ変換を特定のユースケースに合わせて調整し、独自のカスタム Lambda 関数を作成して実行することができます。

Lambda 関数を設定したら、Object Lambda アクセスポイントと呼ばれる S3 Object Lambda サービスエンドポイントにアタッチします。Object Lambda アクセスポイントは、サポートアクセスポイントと呼ばれる、標準の S3 アクセスポイントを使用して Amazon S3 にアクセスします。

Object Lambda アクセスポイントにリクエストを送信すると、Amazon S3 は自動的に Lambda 関数を呼び出します。その後、S3 Object Lambda アクセスポイントを介して S3 GETLIST、または HEAD リクエストを使用して取得されたデータは、変換された結果をアプリケーションに返します。次の図に示すように、他のすべてのリクエストは通常どおりに処理されます。

S3 Object Lambda の仕組みを説明する図

このセクションのトピックでは、S3 Object Lambda の使用方法について説明します。

S3 Object Lambda チュートリアルについては、以下を参照してください。

標準のアクセスポイントの詳細については、Amazon S3 アクセスポイントを使用したデータアクセスの管理 を参照してください。

バケットの操作方法の詳細については、「バケットの概要」を参照してください。オブジェクトの操作方法の詳細については、「Amazon S3 オブジェクトの概要」を参照してください。