Warum erhalte ich die Fehlermeldung „Konfiguration ist mehrdeutig definiert“, wenn ich eine Amazon S3-Ereignisbenachrichtigung zum Auslösen meiner Lambda-Funktion erstelle?

Lesedauer: 4 Minute
0

Ich versuche, eine Amazon Simple Storage Service (Amazon S3)-Bucket-Ereignisbenachrichtigung zu erstellen, um meine AWS Lambda-Funktion auszulösen, und habe eine Fehlermeldung erhalten.

Kurze Beschreibung

Der Fehler „Konfiguration ist mehrdeutig definiert“ tritt auf, wenn sich die Ereignisinformationen einer Benachrichtigung und ihr Präfix oder Suffix mit der Benachrichtigungskonfiguration eines S3-Buckets überschneiden.

Der Fehler kann auftreten, wenn Sie einen der folgenden Schritte ausführen:

  • Erstellen Sie eine S3-Ereignisbenachrichtigung neu, die Sie kürzlich gelöscht haben.
  • Erstellen von S3-Ereignisbenachrichtigungen für mehrere überlappende Ereignisse mithilfe überlappender Präfixe oder Suffixe.

**Hinweis:**Amazon S3-Ereignisbenachrichtigungskonfigurationen ermöglichen überlappende Ereignisse mit nicht überlappenden Präfixen oder Suffixen. Die Konfigurationen ermöglichen auch nicht überlappende Ereignisse mit überlappenden Präfixen oder Suffixen.

Weitere Informationen und Beispiele finden Sie unter Konfigurieren von Ereignisbenachrichtigungen mithilfe der Filterung von Objektschlüsselnamen.

Behebung

Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI Version verwenden.

Um die Benachrichtigungskonfiguration Ihres aktuellen S3-Buckets zu überprüfen, führen Sie einen der folgenden Schritte aus:

Führen Sie dann einen der folgenden Schritte aus:

Entfernen Sie ein überlappendes Ereignis

Löschen Sie in der Amazon S3-Konsole eine vorhandene Ereignisbenachrichtigung, die sich mit der neuen, die Sie erstellen möchten, überschneidet.

**Hinweis:**Wenn Sie einen Lambda-Funktionsauslöser löschen, wird die zugehörige S3-Ereignisbenachrichtigung nicht automatisch gelöscht. Sie müssen die Benachrichtigung auch in Amazon S3 löschen, bevor Sie einen neuen Trigger ohne Suffix-Einschränkungen erstellen.

-oder-

Aktualisieren Sie die JSON-Datei der Benachrichtigungskonfiguration in Ihrem S3-Bucket mithilfe der AWS CLI. Um eine Liste aller in Ihrem S3-Bucket konfigurierten Ereignisbenachrichtigungen abzurufen, führen Sie den AWS-CLI-Befehl get-bucket-notification-configuration aus. Um alle S3-Ereignisbenachrichtigungen zu entfernen, führen Sie den AWS-CLI-Befehl put-bucket-notification-configuration ähnlich dem folgenden aus:

Hinweis: Ersetzen Sie den Bucket-Namen durch Ihren Bucket-Namen.

aws s3api put-bucket-notification-configuration --bucket=<bucket-name> --notification-configuration="{}"

Nachdem Sie die überlappende Ereignisbenachrichtigung entfernt haben, können Sie mithilfe der Amazon S3-Konsole oder des AWS-CLI-Befehls put-bucket-notification-configuration neue Benachrichtigungen hinzufügen.

Konfigurieren Sie die neue Benachrichtigung neu

Ändern Sie die Objektschlüsselbenennung für Ihren S3-Bucket-Namespace, um mehrere überlappende Ereignisse mit nicht überlappenden Präfixen zuzulassen.

Um beispielsweise anzugeben, dass überlappende Ereignisobjekte, wie beispielsweise hochgeladene Bilder, je nach Bilddateityp (Suffix) einen anderen S3-Bucket-Ordner (Präfix) verwenden:

  • S3: //mybucket/uploadedJPEG
  • S3: //mybucket/uploadedGIF

Redesign für Ihren Anwendungsfall

Wenn Sie Ihre S3-Ereignisbenachrichtigung nicht neu konfigurieren können, um Überschneidungen zu vermeiden, versuchen Sie, Ihre Architektur neu zu gestalten, um dies zu umgehen.

Zum Beispiel:

Tipp: Für komplexere Architekturen und Prozesse verwenden Sie eine AWS Step Functions-Zustandsmaschine, um Ihren Workflow zu entwerfen und zu verwalten. Weitere Informationen finden Sie in den Anwendungsfällen von AWS Step Functions und in den Tutorials für Schrittfunktionen.


Verwandte Informationen

Warum erhalte ich die Fehlermeldung „Die folgenden Zielkonfigurationen konnten nicht überprüft werden“, wenn ich eine Amazon S3-Ereignisbenachrichtigung erstelle, um meine Lambda-Funktion aufzurufen?

Warum ruft meine Amazon-S3-Ereignisbenachrichtigung meine Lambda-Funktion nicht auf?

Verwendung von AWS Lambda mit Amazon S3

Anleitung: Verwendung eines Amazon S3 Triggers zum Aufrufen einer Lambda-Funktion

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr