0
Help us understand the problem. What are the problem?

posted at

S3トリガー(オブジェクト作成イベント)によるLambda実装の注意点

概要

Lambdaの開発時にS3トリガーとした実装を求められることもある。本記事は、S3トリガーを実装するときに注意すべき点を記載しておく。

実装イメージ

S3バケットのオブジェクトをトリガーにLambda関数が呼び出される
s3_lambda.png

S3トリガーによるイベントタイプ

  • オブジェクトの作成イベント
  • オブジェクトの削除イベント
  • オブジェクトの復元イベント
  • 低冗長化ストレージ (RRS) オブジェクトのイベントロスト
  • レプリケーションイベント
  • S3 ライフサイクルの有効期限イベント
  • S3 ライフサイクルの移行イベント
  • S3 Intelligent−Tiering 自動アーカイブイベント
  • オブジェクトのタグ付けイベント
  • オブジェクト ACL PUT イベント

馴染みのあるイベントはオブジェクトの作成イベントと思われるが、以下の2つは違いがある。
ObjectCreatedの場合、すべてのオブジェクトが対象であるが、ObjectCreatedByPutの場合、マルチパートアップロードされたオブジェクトは対象外である。マルチパートアップロードされたオブジェクトはイベント検知されないため要注意。
s3trigger.png

既存のトリガーにObjectCreatedByPutしかないが、マルチパートアップロードされたオブジェクトも対象にしたい場合、以下も追加する。
s3malti.png

それぞれイベント作成時に以下のようにプルダウンで表示される
lambda_create.png

おわり

オブジェクト作成イベントをS3トリガーにする場合、注意が必要である。
要件によって使い分けると思われるが、ちゃんと要件を確認されたし。

おまけ

S3トリガーを作成/削除を繰り返すと以下のメッセージが出力されることがある。

trigger の作成中にエラー が発生しました: Configurations overlap. Configurations on the same bucket cannot share a common event type.

以下のリンクを参考に対応されたし。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?