カテゴリ: AWS Lambda 更新日: 2025/10/28

【AWS入門】LambdaとS3の連携方法を完全解説!トリガー設定・ファイル処理の自動化手順

266
【AWS】LambdaとS3の連携方法!トリガー設定・ファイル処理の自動化手順

先生と生徒の会話形式で理解しよう

生徒

「先生、AWS LambdaとS3を連携してファイル処理を自動化したいんですが、どうやればいいか分かりません…」

先生

「LambdaとS3の連携は、イベント駆動の仕組みを使えば簡単にできますよ。特にS3バケットにファイルがアップロードされたときにLambdaを自動で呼び出す設定ができます。」

生徒

「それって、たとえばCSVファイルをアップロードしたら、自動的に処理される感じですか?」

先生

「その通りです。それじゃあ、S3トリガーの設定方法とLambda関数の実装方法を詳しく見ていきましょう。」

1. AWS LambdaとS3の基本的な連携の仕組み

1. AWS LambdaとS3の基本的な連携の仕組み
1. AWS LambdaとS3の基本的な連携の仕組み

AWS LambdaとAmazon S3は、イベント駆動の仕組みを活用して連携できます。たとえば、S3バケットにファイルがアップロードされたタイミングでLambda関数を自動的に起動し、そのファイルを処理するといった流れが実現できます。

この仕組みは、サーバーレスアーキテクチャに最適で、ファイル処理の自動化・画像リサイズ・CSV解析・ログ整形など、さまざまな用途に活用できます。

2. S3バケットにトリガーを設定する手順

2. S3バケットにトリガーを設定する手順
2. S3バケットにトリガーを設定する手順

S3バケットに対してLambdaトリガーを設定するには、以下の手順で行います。

  • AWSマネジメントコンソールでS3を開く
  • 対象のバケットを選択
  • 「プロパティ」タブを開く
  • 「イベント通知」セクションで新しい通知を作成
  • Lambda関数を指定してイベントタイプ(例:PUT)を設定

これで、指定した条件に一致するファイルがアップロードされたときに、Lambda関数がトリガーされるようになります。

3. Lambda関数でS3ファイルを処理する基本コード

3. Lambda関数でS3ファイルを処理する基本コード
3. Lambda関数でS3ファイルを処理する基本コード

以下は、S3にアップロードされたファイルのキー(ファイル名)を取得してログに出力するシンプルなLambda関数の例です。(Node.jsの場合)


const AWS = require('aws-sdk');
const s3 = new AWS.S3();

exports.handler = async (event) => {
    const record = event.Records[0];
    const bucket = record.s3.bucket.name;
    const key = decodeURIComponent(record.s3.object.key.replace(/\+/g, ' '));
    console.log("バケット名:", bucket);
    console.log("ファイルキー:", key);
};

このようにLambda関数のeventオブジェクトには、S3からの通知情報が入っており、アップロードされたファイルの情報が取得できます。

AWSの基本用語や仕組みを、図解でサクッと理解したい人には、 入門の定番書がこちらです。

AWSの基本が全部わかる教科書をAmazonで見る

※ Amazon広告リンク

4. S3とLambda連携時のIAMロール設定

4. S3とLambda連携時のIAMロール設定
4. S3とLambda連携時のIAMロール設定

Lambda関数がS3のファイルにアクセスするには、適切なIAMロールとポリシー設定が必要です。例えば以下のようなS3読み取り権限をロールに付与します。


{
  "Effect": "Allow",
  "Action": [
    "s3:GetObject"
  ],
  "Resource": "arn:aws:s3:::your-bucket-name/*"
}

このポリシーをLambdaの実行ロールに設定することで、ファイルの取得や処理が行えるようになります。

5. LambdaとS3連携の活用例

5. LambdaとS3連携の活用例
5. LambdaとS3連携の活用例

LambdaとS3の連携はさまざまな場面で活用されています。以下はその代表的な例です。

  • アップロードされたCSVファイルを解析してDynamoDBに保存
  • アップロード画像をリサイズし別のS3フォルダへ保存
  • テキストログを整形してAthena用に保存
  • ZIPファイルを展開してコンテンツを保存

このように、S3連携はサーバーレス開発において中心的な役割を担うことが多いです。

6. S3トリガーとLambdaの連携時の注意点

6. S3トリガーとLambdaの連携時の注意点
6. S3トリガーとLambdaの連携時の注意点

トリガー設定やLambda関数の実装時には、いくつかの注意点があります。

  • Lambda関数のタイムアウトを適切に設定する
  • ファイルサイズが大きい場合は分割処理を検討する
  • トリガー設定時のプレフィックス・サフィックスを活用して対象を絞る

例えば、.csvファイルだけを対象にするには、「サフィックス」に「.csv」を指定するとよいでしょう。

7. LambdaとS3を使った処理の自動化でできること

7. LambdaとS3を使った処理の自動化でできること
7. LambdaとS3を使った処理の自動化でできること

LambdaとS3を組み合わせることで、次のような自動処理が実現できます。

  • バッチ処理の自動化
  • 画像や動画の変換処理
  • 分析用ログの整形と保存
  • データの検証と通知

これらの処理をサーバーレスで行えるため、インフラ管理の手間を大幅に減らすことができます。

AWS Lambdaの一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク