36
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS Lambda関数の「Configuration is ambiguously defined」エラーへの対応

Last updated at Posted at 2018-05-31

S3の更新をトリガーにして実行されるLambda関数の設定更新でハマったので後世のためにその対処方法を記しておきます。なお、2018年5月31日時点での情報になります。

エラー概要

S3の変更をトリガーにしたLambda関数の新規作成または更新で発生します。
Lambda関数が作成、または更新できなくなります。

エラー画面

AWS-Lmbda-error2.png

エラーログ

Configuration is ambiguously defined.
Cannot have overlapping suffixes in two rules if the prefixes are overlapping for the same event type.
(Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: XXX; S3 Extended Request ID: ZZZ)

発生原因は2つありますが私は 2 のケースに引っ掛かりました。
Lambda関数の設定更新とS3のバケットにトリガーイベントを設定するのはアトミックな処理になっていないようです。

  1. 他のLambda関数がトリガーにしているS3のバケットを指定している
  • 仕様なのでどうにもならない
  1. Lambda関数の更新に失敗して関数自体のS3のトリガー設定は消えたが、S3のバケットのトリガー設定は残っている

2のケースの対処方法

該当のS3のバケットの プロパティ > Events を開き、設定されているイベントを全て削除すればLambda関数が更新できるようになります。
以下のキャプチャはバケットにLambda関数のトリガーイベントが設定されている状態のものです。

S3-config.png

参考資料

以下のサイトを読んでS3のイベント設定の存在に気付きました。感謝。

【AWS】Lambdaのトリガー設定時にS3のバケットを追加するとエラーになる時がある

36
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?