AWS Lambda 関数をトリガーする Amazon Simple Storage Service (Amazon S3) バケットイベント通知の作成を試みていますが、エラーが発生しました。
「Configuration is ambiguously defined error」というエラーは、通知のイベント情報とそのプレフィックスまたはサフィックスが S3 バケットの通知設定と重複している場合に発生します。
このエラーは、次のいずれかの操作を行っているときに発生することがあります。
注: Amazon S3 イベント通知設定では、プレフィックスまたはサフィックスが重複しない重複イベントが許可されます。この設定では、プレフィックスまたはサフィックスが重複する重複しないイベントも許可されます。
詳細については、「オブジェクトキー名のフィルタリングを使用したイベント通知の設定」を参照してください。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、使用している AWS CLI が最新バージョンであることを確認してください。
現在の S3 バケットの通知設定を確認するには、次のいずれかを実行します。
次のいずれかを実行します。
Amazon S3 コンソールで、作成しようとしている新しいイベント通知と重複する既存のイベント通知を削除します。
注: Lambda 関数トリガーを削除しても、関連付けられた S3 イベント通知は自動的に削除されません。また、サフィックスの制約なしで新しいトリガーを作成する前に、Amazon S3 の通知を削除する必要があります。
または
AWS CLI を使用して S3 バケットの通知設定 JSON ファイルを更新します。S3 バケットに設定されているすべてのイベント通知のリストを取得するには、AWS CLI コマンド get-bucket-notification-configuration を実行します。S3 イベント通知をすべて削除するには、次のような AWS CLI コマンド put-bucket-notification-configuration を実行します。
注: bucket-name は該当するバケット名に置き換えてください。
aws s3api put-bucket-notification-configuration --bucket=<bucket-name> --notification-configuration="{}"
重複するイベント通知を削除したら、Amazon S3 コンソールまたは AWS CLI コマンド put-bucket-notification-configuration を使用して新しい通知を追加できます。
S3 バケット名前空間のオブジェクトキー命名を変更して、プレフィックスが重複しない複数の重複イベントを許可するようにします。
たとえば、重複するイベントオブジェクト (アップロードされたイメージなど) を指定するためには、その (イメージ) ファイルの種類 (サフィックス) に応じて、異なる S3 バケットフォルダ (プレフィックス) を使用します。
重複を避けるために S3 イベント通知を再設定できない場合は、アーキテクチャを再設計してみてください。
例:
**ヒント:**より複雑なアーキテクチャとプロセスについては、AWS Step Functions ステートマシンを使用してワークフローを設計および管理します。詳細については、「AWS Step Functions のユースケース」と「Tutorials for Step Functions」を参照してください。
Amazon S3 イベント通知を作成するときに「Amazon S3 イベント通知を作成する際に、次の宛先の設定を検証できません」というエラーが表示されるのはなぜですか?
Amazon S3 イベント通知が Lambda 関数を呼び出さないのはなぜですか?
Using AWS Lambda with Amazon S3
Tutorial: Using an Amazon S3 trigger to invoke a Lambda function