【AWS】Lambdaのトリガー設定時にS3のバケットを追加するとエラーになる時がある
Lambdaでいろいろ試しててトリガーにS3のバケットを指定したときに以下のように言われる事があった。
There was an error creating the trigger: Configuration is ambiguously defined. Cannot have overlapping suffixes in two rules if the prefixes are overlapping for the same event type.
英語あんまり分からないけど、察するに1つのバケットに対して複数の同じイベント通知設定は登録できないという事?
S3側のイベント通知設定を見てみると確かに同じイベントの別のLambdaがすでに指定されていた。
別のイベントタイプを指定するか、使われてないと思われる設定を削除すれば解消すると思われる。
Lambdaにトリガー設定をした後Lambdaだけ削除するとS3の通知設定が残ったままになるので気を付ける。
また、削除後にしばらくエラーが出る時があるがLambdaもほかのサービスと同様に冗長化しているため完全に設定が反映されるまで時間がかかる時があるっぽい。
「Triggers」に追加・削除をしたあと「Configuration」や「Monitoring」などに色々切り替えて再び「Triggers」を表示すると反映されていたり、いなかったり。
以下AWS Lambdaのよくある質問
https://aws.amazon.com/jp/lambda/faqs/
Q: 自作の AWS Lambda 関数は、コードや設定を変更してもそのまま使用できますか?
はい。Lambda 関数を更新すると、通常 1 分未満の短い移行期間が発生します。この期間中に発行されたリクエストは、古いバージョンと新しいバージョンのどちらによって処理されるか保証されません。